Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Namespaces (5/11) >

Matching nodes in non-null namespace

There is nothing special about matching nodes in non-null namespace. Nevertheless, it is a source of very common programming errors which are hard to discover. It is so easy to overlook that a node comes from some namespace especially if no prefix is used on the source element.
XSLT

      <xsl:stylesheet
                  xmlns:o="oooooo"
                  xmlns:v="vvvvvv"
                  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="o:aaa">
                  <o:xxx>
                        <xsl:apply-templates  select="*"/>
                  </o:xxx>
            </xsl:template>

            <xsl:template  match="v:bbb">
                  <v:zzz/>
            </xsl:template>

            <xsl:template  match="o:ccc">
                  <o:yyy/>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa
                  xmlns:="oooooo">
            <n:bbb
                        xmlns:n="vvvvvv"/>
            <ccc/>
      </aaa>
Output

      <o:xxx
                  xmlns:o="oooooo"
                  xmlns:v="vvvvvv">
            <v:zzz/>
            <o:yyy/>
      </o:xxx>


Previous chapter: Multiple Outputs
Next chapter: Keys
Previous page: Creating attributes in some namespace
Next page: Matching all elements in selected namespace