xsl-list
[Top] [All Lists]

Re: Current Context and document()

2003-02-21 14:23:27
Marty McKeever wrote:
When iterating through elements in an external document('foo.xml'),
how can i access the current node of the internal DOM?  I thought current()
would work, but apparently not.

<xsl:template match="form">
  <xsl:for-each select="document('foo.xml')/root/item">

    <xsl:value-of select="."/>
    <!-- value of foo.xml/root/item[i] -->

    <xsl:value-of select="current()/@name"/>
    <!-- attribute of the matched form element ?? -->

  </xsl:for-each>
</xsl:template>

Current() returns the context node from the context outside the
XPath expression, in your case the current node from the
document('foo.xml')/root/item node set, or the same as ".".
You can store the node you want to keep in a variable:

 <xsl:template match="form">
   <xsl:variable name="current" select="."/>
   <xsl:for-each select="document('foo.xml')/root/item">
      <xsl:value-of select="$current/@name"/>
   </xsl:for-each>
 </xsl:template>

J.Pietschmann


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>