Subject: [xsl] XPath matching elements with or without prefix by inherited namespace From: "Stephen Colin (UK)" <Colin.Stephen@xxxxxx> Date: Fri, 11 Jan 2008 14:54:31 -0000 |
I'm sure this must be a common problem, but I've been unable to find any reference to it. How do I reliably match the "elem" element in both of the below documents: <?xml version="1.0" encoding="UTF-8?> <p:example xmlns:p="something"> <elem>value</elem> </p:example> <?xml version="1.0" encoding="UTF-8?> <p:example xmlns:p="something"> <p:elem>value</p:elem> </p:example> I believe that these are effectively identical as the prefix on elem in the latter case is redundant and same the namespace definition is inherited from p:example. However the following will only match one and not the other (as though the latter cases had no namespace associated with the <elem>). <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsmlns:q="something"> <xsl:template> <xsl:value-of select="//elem"/> </xsl:template> </xsl:stylesheet> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsmlns:q="something"> <xsl:template> <xsl:value-of select="//q:elem"/> </xsl:template> </xsl:stylesheet> I'm confused, as if I use some xslt to show the namespaces on the node in each case their identical: xml -> http://www.w3.org/XML/1998/namespace p -> something I get the same result with either Saxon 6.5.3 or xsltproc - libxml(20628), libxslt(10120), libexslt(813) I'm wanting to use XPath expressions to robustly handle SOAP requests in either form. Is it that only the definitions are inherited and the child elements need to have the prefix to be explicitly put into that namespace ? Many thanks, Colin -- Colin Stephen ISD - Data Delivery Development Team (DDT) Tel: +44 (0) 1753 564534 Mob: +44 (0) 7801 850728 This electronic message contains information from O2 which may be privileged or confidential. The information is intended to be for the use of the individual(s) or entity named above. If you are not the intended recipient be aware that any disclosure, copying distribution or use of the contents of this information is prohibited. If you have received this electronic message in error, please notify us by telephone or email (to the numbers or address below) immediately. Switchboard: +44 (0)113 272 2000 O2 (UK) Limited 260 Bath Road, Slough, Berkshire SL1 4DX Registered in England and Wales: 1743099. VAT number: GB 778 6037 85
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Breaking up a large XML d, Michael Kay | Thread | Re: [xsl] XPath matching elements w, Martin Honnen |
[xsl] Breaking up a large XML docum, Glen Mazza | Date | Re: [xsl] Breaking up a large XML d, Eliot Kimber |
Month |