[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Using XSLT as a namespace filter...
Solution:
The previously posted transform works correctly to "band-pass" only elements from a particular namespace. The example inputs I previously provided were flawed. Transform: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://foo.org/ns/foo" > <xsl:output method='xml' version='1.0' encoding='UTF-8' indent='yes'/> <xsl:template match="foo:*"> <xsl:copy > <xsl:call-template name="textAndattributes" /> <xsl:apply-templates /> </xsl:copy> </xsl:template> <xsl:template match="*"><xsl:apply-templates /></xsl:template> <xsl:template match="@*|text()" /> <xsl:template name="textAndattributes" ><xsl:copy-of select="text()|@*" /></xsl:template> </xsl:stylesheet> Source Document: <?xml version="1.0" encoding="UTF-8"?> <A name="rootElement" xmlns="http://foo.org/ns/foo" xmlns:foo="http://foo.org/ns/foo "> <B name="wooStuff" type="otherXML"> <W xmlns="http://foo.org/ns/woo" >Some Stuff</W> <W xmlns="http://foo.org/ns/woo" >Some more stuff</W> </B>
</A> Correct Result: <?xml version="1.0" encoding="UTF-8"?> <A xmlns="http://foo.org/ns/foo" xmlns:foo="http://foo.org/ns/foo" name="rootElement"> <B name="WCS" type="otherXML"> </B> <C name="site_netCode"> <d name="outside"/> <foo:d xmlns="http://www.thing.net/thing/1.1" name="inside">inside's text node</foo:d> </C> <C name="site_netCode"> <d name="outside"/> <d name="inside">inside's text node</d> </C> </A>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|