match="text()|@*" : axis « XSLT stylesheet « XML






match="text()|@*"


File: Data.xml

<winelist>
  <wine grape="Chardonnay">
    <winery>shop 1</winery>
    <product>product 1</product>
    <year>1998</year>
    <prices>
      <list>6.99</list>
      <discounted>5.99</discounted>
      <case>71.50</case>
    </prices>
  </wine>
  <wine grape="Chardonnay">
    <winery>shop 2</winery>
    <product>product 2</product>
    <year>1997</year>
    <prices>
      <list>10.99</list>
      <discounted>9.50</discounted>
      <case>114.00</case>
    </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="*|/">
    <xsl:apply-templates />
  </xsl:template>

  <xsl:template match="text()|@*">
    <xsl:value-of select="." />
  </xsl:template>

  <xsl:template match="processing-instruction()|comment()" />
  
</xsl:stylesheet>

Output:


  
    shop 1
    product 1
    1998
    
      6.99
      5.99
      71.50
    
  
  
    shop 2
    product 2
    1997
    
      10.99
      9.50
      114.00
    
  

 








Related examples in the same category

1.List All customers: /report/customer
2.template match="//customer"
3.template match="//customer[1]/name"
4.template match="//processing-instruction()"
5.Match all from root
6.for-each and select="."
7.tag with index
8.select="." (dot)
9.Match an element
10.match element with certain attribute value
11.match="@*|node()"
12.select down to a certain level and its attribute
13.for-each select="listitem[position() > 1]"