Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Implicit behaviour (10/10) >

Implicit templates for processing instructions and comments

Implicit templates for processing instructions and comments do nothing. You have to declare template using node tests comment() and processing-instruction() to achieve some results.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:apply-templates  select="bbb"/>
                  </xxx>
                  <yyy>
                        <xsl:apply-templates  select="ccc"/>
                  </yyy>
            </xsl:template>

            <xsl:template  match="ccc/comment()">
                  <comment>
                        <xsl:value-of  select="."/>
                  </comment>
            </xsl:template>

            <xsl:template  match="ccc/processing-instruction()">
                  <proc-ins  name="{name()}">
                        <xsl:value-of  select="."/>
                  </proc-ins>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb> <!-- comment BBB --> <?bbb processing-instruction BBB?> </bbb>
            <ccc> <!-- comment CCC --> <?bbb processing-instruction CCC?> </ccc>
      </aaa>
Output

      <xxx> </xxx>
      <yyy>
            <comment> comment CCC </comment>
            <proc-ins  name="bbb">processing-instruction CCC</proc-ins>
      </yyy>


Previous chapter: Context
Next chapter: Arithmetics
Previous page: Priorities of implicit templates
Next page: - - -