select="child::name[4]/attribute::title" : child « XPath « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<names>
  <name>
    <last>A</last>
    <first>P</first>
  </name>
  <name>
    <last>B</last>
    <first>J</first>
  </name>
  <name>
    <last>S</last>
    <first>C</first>
  </name>
  <name>
    <last>T</last>
    <first>J</first>
  </name>
</names>


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:output method="text" />

  <xsl:template match="/">
    <xsl:apply-templates select="child::names" />
  </xsl:template>

  <xsl:template match="child::names">
    <xsl:apply-templates select="child::name[4]/attribute::title" />
  </xsl:template>

  <xsl:template match="child::name[4]/attribute::title">
    <xsl:text>The XML 1.0 WG's </xsl:text>
    <xsl:value-of select="self::node()" />
    <xsl:text> was </xsl:text>
    <xsl:value-of select="parent::name/child::given" />
    <xsl:text> </xsl:text>
    <xsl:value-of select="parent::name/child::family" />
    <xsl:text>.</xsl:text>
  </xsl:template>

</xsl:stylesheet>








4.7.child
4.7.1.Child Axis
4.7.2.select="child::name[4]/attribute::title"
4.7.3.select=child::name[@title = editor]
4.7.4.match=child::name[@title = editor]
4.7.5.match="name[4]/@title"
4.7.6.Child of title element for the second completeTrainingCourse is
4.7.7.for-each children
4.7.8.Process the element only if the element is a child of different element
4.7.9.for-each select="child::*"