for-each select="child::parentTagName", value-of select="childTagName" : for each « XSLT stylesheet « XML






for-each select="child::parentTagName", value-of select="childTagName"


File: Data.xml

<winelist>
  <wine grape="Chardonnay">
    <winery>shop 2</winery>
    <product>product 2</product>
    <year>1997</year>
    <prices>
      <list>10.99</list>
      <discounted>9.50</discounted>
    </prices>
  </wine>
  <wine grape="Chardonnay">
    <winery>shop 1</winery>
    <product>product 1</product>
    <year>1998</year>
    <prices>
      <list>6.99</list>
      <discounted>5.99</discounted>
    </prices>
  </wine>
</winelist>
File: Transform.xslt

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
  <xsl:output method="xml" omit-xml-declaration="yes" indent="no" />
  <xsl:template match="winelist">
    <xsl:for-each select="child::wine">
      <xsl:value-of select="winery" />
    </xsl:for-each>
  </xsl:template>
  
</xsl:stylesheet>

Output:

shop 2shop 1

 








Related examples in the same category

1.Use for-each loop
2.Use for-each to loop through each tags
3.for-each loop and table rows
4.for-each select="*", value-of="."
5.for-each select="node()", value-of select="."
6.for-each select="child::parentTagName[@attributeName='your value']"
7.Nested for-each statement