Selecting elements based on values of other ones. : select « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="utf-8"?>
<DOCUMENT>
  <TAG1>Hello</TAG1>
  <TAG2>Hello</TAG2>
  <TAG3>World</TAG3>
  <TAG4>Europe<TAG5>World</TAG5>
  </TAG4>
</DOCUMENT>
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="html"/>
    <xsl:template match="/">
      <xsl:if test="//DOCUMENT[TAG1 = TAG2]">
        <xsl:value-of select="//DOCUMENT/TAG1"/>
      </xsl:if>
      <BR/>
      <xsl:if test="//DOCUMENT[TAG3 = TAG4/TAG5]">
        <xsl:value-of select="//TAG4/text()"/>
      </xsl:if>
    </xsl:template>
</xsl:stylesheet>

Output:

Hello<BR>Europe








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.