current name : current « XPath « XML Tutorial






File: Data.xml

<?xml version="1.0"?>
<root ref="rootref" name="blue">
  <glossary>
    <item ref="blue" name="rootref">rootref</item>
  </glossary>
  <glossary>
    <item ref="itemref" name="itemref">itemref</item>
  </glossary>
</root>
File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" />
  <xsl:template match="/">
    <xsl:apply-templates select="root" />
  </xsl:template>

  <xsl:template match="root">
    <xsl:for-each select="//glossary/item[@name=current()/@ref]">
      <xsl:copy-of select="." />
      <xsl:for-each select=".">
        <xsl:for-each select="//glossary/item[@name=current()/@ref]">
          <xsl:copy-of select="." />
        </xsl:for-each>
      </xsl:for-each>
    </xsl:for-each>
    <xsl:for-each select="//glossary/item[@name=./@ref]">
      <xsl:copy-of select="." />
    </xsl:for-each>
    <xsl:for-each select=".">
      <xsl:copy-of select="." />
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-8"?>
<item ref="blue" name="rootref">rootref</item>
<item ref="itemref" name="itemref">itemref</item>
<root ref="rootref" name="blue">
    <glossary>
        <item ref="blue" name="rootref">rootref</item>
    </glossary>

    <glossary>
        <item ref="itemref" name="itemref">itemref</item>
    </glossary>
</root>








4.3.current
4.3.1.current name
4.3.2.Sort by current value
4.3.3.current() returns a node-set that has the current node as its only member
4.3.4.get current node with current() function
4.3.5.current() and name()
4.3.6.Referring to the Current Node