Check current element value, the output : axis « XPath « XML Tutorial






File: Data.xml
<?xml version = "1.0"?>
<books>
   <book> 
      <title>Java How to Program</title>
      <translation edition = "1">Spanish</translation>
      <translation edition = "1">Chinese</translation>
      <translation edition = "1">Japanese</translation>
      <translation edition = "2">French</translation>
      <translation edition = "2">Japanese</translation>
   </book>

   <book> 
      <title>C++ How to Program</title>
      <translation edition = "1">Korean</translation>
      <translation edition = "2">French</translation>
      <translation edition = "2">Spanish</translation>
      <translation edition = "3">Italian</translation>
      <translation edition = "3">Japanese</translation>
   </book>

</books> 


File: Transform.xslt
<?xml version = "1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <html>
      <body>
        <ul>
          <xsl:for-each select="books/book/translation">
            <xsl:if test=". = 'Japanese'">

              <li>
                <strong>
                  <xsl:value-of select="../title" />
                </strong>
                - Edition:
                <strong>
                  <xsl:value-of select="@edition" />
                </strong>
              </li>

            </xsl:if>
          </xsl:for-each>
        </ul>

      </body>
    </html>
  </xsl:template>

</xsl:stylesheet>

Output:

<html>
   <body>
      <ul>
         <li><strong>Java How to Program</strong>
                            - Edition:
                            <strong>1</strong></li>
         <li><strong>Java How to Program</strong>
                            - Edition:
                            <strong>2</strong></li>
         <li><strong>C++ How to Program</strong>
                            - Edition:
                            <strong>3</strong></li>
      </ul>
   </body>
</html>








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