selects only elements which occurs first in each level : axis « XPath « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="utf-8"?>
<data>
    <contact>
      <name>A</name>
      <street>B</street>
      <number>7</number>
      <tel>
        <home>1111111</home>
        <work>7777777</work>
      </tel>
    </contact>
    <contact>
      <name>C</name>
      <street>D</street>
      <number>75</number>
      <tel>
        <home>21111111</home>
        <work>333333333</work>
      </tel>
    </contact>
</data>
File: Transform.xslt

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
      version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <TABLE>
        <xsl:for-each select="//*[1]">
          <xsl:call-template name="generalTemplate"/>
        </xsl:for-each>
      </TABLE>
    </xsl:template>
    <xsl:template name="generalTemplate">
      <TR>
        <TD>
          <xsl:value-of select="name(.)"/>
        </TD>
      </TR>
    </xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-8"?><TABLE><TR><TD>data</TD></TR><TR><TD>contact</TD></TR><TR><TD>name</TD></TR><TR><TD>home</TD></TR><TR><TD>name</TD></TR><TR><TD>home</TD></TR></TABLE>








4.1.axis
4.1.1.Modeling XML Documents with Axis
4.1.2.All axes were used in this example
4.1.3.select element by index
4.1.4.Decendents of
4.1.5.Check current element value, the output
4.1.6.match element by name
4.1.7.Element level matching
4.1.8.Math calculation with current value
4.1.9.If an element has a child
4.1.10.If one element has at least one child element
4.1.11.If an element has more than 3 child elements
4.1.12.match="@*|node()"
4.1.13.select dot for value-of
4.1.14.* for level
4.1.15.If element has value
4.1.16.selects only elements which occurs first in each level