Subject: Re: [xsl] default namespace on input document From: Vasu Chakkera <vasucv@xxxxxxxxx> Date: Tue, 15 Feb 2011 14:56:31 +0000 |
>> This is probably a trivial issue, but I'm new to XSL 2. Basically this is to do with both XSLT1 and 2 Your Xpaths work relative to the namespace ... So if your document element is in a perticular namespace, then your Xpaths should change accordingly.. You can come across this by either **************telling your stylesheet what the default namespace would be by using xpath-default-namespace="" OR *********** declaring a namespace prefix in the stylesheet and use it to refer to the nodes in the xpath like xmlns:myns = "http://foo.com" and then refer to the nodes like myns:nodename also... with ,,, <xsl:template match="/"> <xsl:apply-templates select="." /> </xsl:template> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*"/> </xsl:copy> </xsl:template> You are very very likely to run into Infinite recursion .... you probably want ... somethiing like this... <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:mns = "http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*"/> </xsl:copy> </xsl:template> <xsl:template match="mns:body"> <!-- never matched --> hi <xsl:sequence select="."/> </xsl:template> </xsl:stylesheet> hth Vasu Chakkera.. 2011/2/15 Merrilees, David <David.Merrilees@xxxxxxxxxxxx>: > Hi > > I'm having trouble matching a template in XSLT2. When I add a default namespace to my input document, my templates no longer match any elements. > > Input: > > > <?xml version="1.0" encoding="UTF-8"?> > <html xmlns="http://www.w3.org/1999/xhtml"> > <head> > <title>Text Chybljmcm for key: Welcome in cs-CZ</title> > <meta charset="utf-8" /> > </head> > <body id="home"> > <div id="footer"> > <p> > (c) Tesco.com 2011 > </p> > </div> > </body> > </html> > > XSL: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet > version="2.0" > xmlns="http://www.w3.org/1999/xhtml" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > exclude-result-prefixes="xsl"> > > <xsl:template match="/"> > <xsl:apply-templates select="." /> > </xsl:template> > > <xsl:template match="node() | @*"> > <xsl:copy> > <xsl:apply-templates select="node() | @*"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="body"> > <!-- never matched --> > hi > <xsl:sequence select="."/> > </xsl:template> > > </xsl:stylesheet> > > This is probably a trivial issue, but I'm new to XSL 2. > > Thanks > > David Merrilees > > This is a confidential email. Tesco may monitor and record all emails. The views expressed in this email are those of the sender and not Tesco. > > Tesco Stores Limited > Company Number: 519500 > Registered in England > Registered Office: Tesco House, Delamare Road, Cheshunt, Hertfordshire EN8 9SL > VAT Registration Number: GB 220 4302 31 > > -- Vasu Chakkera NodeLogic Limited Oxford www.nodelogic.org ==============
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] default namespace on inpu, Andrew Welch | Thread | [xsl] RE: default namespace on inpu, vojtech.toman |
Re: [xsl] default namespace on inpu, Andrew Welch | Date | [xsl] RE: default namespace on inpu, vojtech.toman |
Month |