"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
■< ? 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