All axes were used in this example : axis « XPath « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="utf-8"?>

<doc>
  <ancprec>
    <paragraph>
      Preceeding Ancestor.
      <br />
    </paragraph>
  </ancprec>

</doc>

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="/">
    <xsl:apply-templates select="//me" />
  </xsl:template>
  <xsl:template match="br">
    <br />
  </xsl:template>
  <xsl:template match="me" priority="10">
    <html>
      <head>
        <title>
          <xsl:text>Document</xsl:text>
        </title>
      </head>
      <body>
        <H2>Following Axis</H2>
        <xsl:apply-templates select="following::*/paragraph" />
        <H2>Descendant or Self Axis</H2>
        <xsl:apply-templates select="descendant-or-self::*/paragraph" />
        <H2>Descendant Axis</H2>
        <xsl:apply-templates select="descendant::*/paragraph" />
        <H2>Self Axis</H2>
        <xsl:apply-templates select="self::*/paragraph" />
        <H2>Child Axis</H2>
        <xsl:apply-templates select="child::*/paragraph" />
        <H2>Following Axis</H2>
        <xsl:apply-templates select="following::*/paragraph" />
        <H2>Following Sibling Axis</H2>
        <xsl:apply-templates select="following-sibling::*" />
        <H2>Attribute Axis</H2>
        <xsl:apply-templates select="attribute::*" />
        <H2>Parent Axis</H2>
        <xsl:apply-templates select="parent::*/paragraph" />
        <H2>Ancestor or Self Axis</H2>
        <xsl:apply-templates select="ancestor-or-self::*/paragraph" />
        <H2>Ancestor Axis</H2>
        <xsl:apply-templates select="ancestor::*/paragraph" />
        <H2>Preceding Sibling Axis</H2>
        <xsl:apply-templates select="preceding-sibling::*/paragraph" />
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>








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