Subject: Re: [xsl] Newbie: template match using a mix of namespace prefix and none p refix From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 9 Sep 2002 09:38:50 +0100 |
Hi Palmer, > I have troubles finding a template match when the Xpath is > consisting of mixed with and without namespace prefix. > (It is an OAGIS 7.1 message based on XDR and not XSD if that matters...) > > 1) Absolute path, not working > <xsl:template > match="/msg/req/dta/SHOW_PO_007/DATAAREA/SHOW_PO/POHEADER/of:USERAREA/of:TRA > NSMETHD" mode="copy"> > > 2) A relative path not working > <xsl:template match="///POHEADER/of:USERAREA/of:TRANSMETHD" mode="copy"> My guess would be that these paths aren't working because the msg, req, dta, SHOW_PO_007, DATAAREA, SHOW_PO and/or POHEADER elements are in a namespace in your XML document. Without seeing your source document I can't tell, but this seems to be the most likely explanation. If you have a default namespace declaration in your source document then you should have a similar namespace declaration in your XSLT stylesheet, but one that associates that namespace with a prefix. You should then use that prefix in your files. For example if you declare it with the prefix 'oagis' then you should use: <xsl:template match="oagis:POHEADER/of:USERAREA/of:TRANSMETHD" mode="copy"> ... </xsl:template> > 3) This one is working, but now I may match POLINE tags as well... > <xsl:template match="//of:USERAREA/of:TRANSMETHD" mode="copy"> This template will only match of:TRANSMETHD elements that are children of of:USREAREA elements, so I don't understand why you say that it might match POLINE elements as well. Having '//' at the start of a pattern is always superfluous. The match pattern: of:USERAREA/of:TRANSMETHD does just the same thing as the match pattern: //of:USERAREA/of:TRANSMETHD it's just in the latter pattern, as well as testing whether the of:TRANSMETHD element has a of:USERAREA parent, you're testing whether that of:USERAREA element is a descendant of the root node. Every element in the document is a descendant of the root node, so there's little point testing that. Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Newbie: template match using , Palmer Magnus | Thread | RE: [xsl] Newbie: template match us, Palmer Magnus |
RE: [xsl] CONTEST: How to implement, Michael Kay | Date | RE: [xsl] Newbie: template match us, Palmer Magnus |
Month |