Subject: Re: How to select a namespaced attribute?
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 27 Dec 2002 13:48:17 -0800 (PST)
|
"Vic Gar" <vlg8693@xxxxxxxxxxx> wrote in message
news:F190E9BH3w4sfqKBWwe00015bf3@xxxxxxxxxxxxxx
> Hello all,
> Here's the xml:
>
> <?xml version="1.0"?>
> <bill>
> <Services type="smtp" name="generic"
> xmlns:src="http://xml.apache.org/xindice/Query"
> src:col="/db/data/jobs/smtp"
> src:key="2"/>
> </bill>
>
> the xsl:
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="/">
>
> <xsl:value-of select="//Services/@key"/>
>
> </xsl:template>
> </xsl:stylesheet>
>
> and Saxon 6.5.2 and msxsl come up with nothing.
As they should -- there's no "key" attribute in your xml document, that
belongs to the no-name namespace.
> C:\projects\temp>msxsl test.xml test.xsl
> ■< ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U
> T F -
> 1 6 " ? >
> C:\projects\temp>saxon test.xml test.xsl
> <?xml version="1.0" encoding="utf-8"?>
>
> If I substitute @src:key, then I get an error for an
> undeclared namespace.
Yes, because you haven't declared the "/db/data/jobs/smtp" namespace in
your stylesheet.
> Dmitri's XPath visualiser finds the node just fine
> using the @src:key syntax, but not using the @key
> syntax.
The Xpath Visualizer uses a stylesheet, into which it dynamically
copies the namespace definitions from the source xml document. The
difference b/n the XPath Visualizer's stylesheet and yours is that the
former has a definition for the namespace and your stylesheet does not
have such a definition.
> How can I select the value of the src:key attribute
> correctly?
Define the namespace in your stylesheet, then select the real attribute
name -- properly prefixed.
=====
Cheers,
Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|