RE: [xsl] xsl: parsing through specific child nodes

Subject: RE: [xsl] xsl: parsing through specific child nodes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 7 Sep 2008 08:51:29 +0100
> One more question regarding "<xsl:apply-templates select="*" 
/>". Is this going to be applied for each node and attribute > also? So for
eg:
> if I have <ABC xmnls:ns2="http://";> would "<template 
> match=*>" be called for ABC and then xmnls:ns2 also.

1. select="*" only selects child elements, it does does not select
attributes, namespaces, text nodes, comments, or processing instructions.

2. xmlns:ns2 in the XPath model is not an attribute. It turns into a
namespace node. You cannot apply-templates to namespace nodes (well, you
can, but no template rule will ever match them).

To get rid of namespace nodes that are being copied from the source
document, in XSLT 2.0 you can use <xsl:copy copy-namespaces="no">. In 1.0
you have to use <xsl:element name="{name()}" namespace="{namespace-uri()}">.

Michael Kay
http://www.saxonica.com/

Current Thread