select element by attribute value : select « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="UTF-8"?>
<greeting>
 <welcome xml:lang="en" id="001">Welcome</welcome>
 <welcome xml:lang="fr" id="002">Bienvenue</welcome>
 <welcome xml:lang="es" id="003">Bienvenido</welcome>
 <welcome xml:lang="de" id="004">Willkommen</welcome>
</greeting>


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="greeting">
    <xsl:apply-templates select="welcome[lang('de')]" />
  </xsl:template>

  <xsl:template match="welcome[lang('de')]">
    <xsl:text>German: </xsl:text>
    <xsl:value-of select="." />
    <xsl:text> (ID: </xsl:text>
    <xsl:value-of select="@id" />
    <xsl:text>)</xsl:text>
  </xsl:template>

</xsl:stylesheet>
Output:

German: Willkommen (ID: 004)








5.66.select
5.66.1.select element by index
5.66.2.select value from attribute
5.66.3.select="@*|node()"
5.66.4.select="state[not(@founding)]"
5.66.5.select=count(document(other.xml)/eu/other/state)
5.66.6.select element by attribute value
5.66.7.Reference text after selecting tags and attributes
5.66.8.select element and attribute
5.66.9.match parent and select children
5.66.10.Match parent and select grand-children
5.66.11.Match a certain element
5.66.12.select attribute
5.66.13.Get value from an element with value-of and select
5.66.14.Select element out
5.66.15.select="operand[(. < 50) and (. > 30)]"
5.66.16.Selecting elements based on values of other ones.