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