xsl-list
[Top] [All Lists]

Re: How to select a namespaced attribute?

2002-12-27 14:48:17

"Vic Gar" <vlg8693(_at_)hotmail(_dot_)com> wrote in message
news:F190E9BH3w4sfqKBWwe00015bf3(_at_)hotmail(_dot_)com(_dot_)(_dot_)(_dot_)
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
&#9632;< ? 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



<Prev in Thread] Current Thread [Next in Thread>