Is product the ancestor of 'Java'? : ancestor « XPath « XML Tutorial






File: Data.xml

<?xml version = "1.0"?>
<product>
   <books>

      <book>
         Getting Started with Microsoft Visual C++ 
      </book>

      <book>Java</book>
   </books>
   
</product>

File: Transform.xslt
<?xml version = "1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/product">
    Is product the ancestor of 'Java'?
    <xsl:if
      test="name(//node()[. = 'Java']/ancestor::product) = 'product'">
      Yes
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-8"?>
    Is product the ancestor of 'Java'?
    
      Yes








4.5.ancestor
4.5.1.What is Ancestor Axis
4.5.2.select ancestor::*
4.5.3.select="ancestor::names/child::name[1]/child::family"
4.5.4.Is product the ancestor of 'Java'?
4.5.5.for-each select="ancestor::*"