match=county[starts-with(.,K)] priority=2 : match « XSLT stylesheet « XML Tutorial






File: Data.xml

<?xml version="1.0" encoding="US-ASCII"?>

<state name="Rhode Island">
 <county>Bristol</county>
 <county>Kent</county>
 <county>Newport</county>
 <county>Providence</county>
 <county>Washington</county>
</state>


File: Transform.xslt

<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" />

  <xsl:template match="/">
    <county state="{state/@name}">
      <xsl:apply-templates select="state" />
    </county>
  </xsl:template>

  <xsl:template match="state">
    <xsl:apply-templates select="county" />
  </xsl:template>

  <xsl:template match="county[starts-with(.,'K')]" priority="2">
    <first-match>
      <xsl:apply-templates />
    </first-match>
  </xsl:template>

  <xsl:template match="county[2]" priority="1">
    <last-match>
      <xsl:apply-templates />
    </last-match>
  </xsl:template>

  <xsl:template match="county">
    <name>
      <xsl:apply-templates />
    </name>
  </xsl:template>

</xsl:stylesheet>
Output:

<?xml version="1.0" encoding="UTF-8"?>
<county state="Rhode Island">
   <name>Bristol</name>
   <first-match>Kent</first-match>
   <name>Newport</name>
   <name>Providence</name>
   <name>Washington</name>
</county>








5.60.match
5.60.1.match sixth child
5.60.2.Match element by attribute value
5.60.3.match = "* | text()"
5.60.4.match with operator |
5.60.5.match=county[starts-with(.,K)] priority=2
5.60.6.mode = toc