Date: Tue, 13 May 2003 16:54:38 +0300
From: Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com
Subject: RE: [xsl] XPath to match XML from Cocoon Request Generator
Hi,
<page>
<request xmlns="http://www.apache.org/coccon/requestgenerator/2.0"
target="/cocoon/test/request" source="">
<requestHeaders>
<header name="accept">image/gif, image/jpeg, ..., */*</header>
<header name="accept-language">en-gb</header>
<header name="accept-encoding">gzip, deflate</header>
<header name="user-agent">Mozilla/4.0 (compatible; MSIE
6.0; Windows
NT 5.0)</header>
<header name="host">localhost:8080</header>
<header name="connection">Keep-Alive</header>
</requestHeaders>
<requestParameters />
<configurationParameters />
</request>
<foo target="bar"/>
</page>
I what to access the target attribute of the request element.
I have used:
/page/x:request/@target
where the prefix x is bound to namespace URI
http://www.apache.org/coccon/requestgenerator/2.0.
[snip]
1) Why is xmlns attribute causing this happening?
See <http://www.w3.org/TR/xpath#node-tests>
"--except that the default namespace declared with xmlns is not used:--"
Cheers,
Jarno - God Module: Illusion
Thanks for the response Jarno but I still have the problem - may be I have
misunderstood you - there is no x, so '/path/request/@target' should work:
XML:
<page>
<request xmlns="http://www.apache.org/coccon/requestgenerator/2.0"
target="/cocoon/test/request" source="">
...
</request>
</page>
XSLT:
My understanding is that <xsl:value-of select="/path/request/@target"/>
should return '/cocoon/test/request', but it does not.
Instead the only XSLT I can make work is <xsl:value-of
select="/path/*/@target"/>
When I remove the xmlns attribute from the XML:
<page>
<request target="/cocoon/test/request" source="">
...
</request>
</page>
<xsl:value-of select="/path/request/@target"/> works.
It appears that the xmlns attribute is preventing the Xpath from matching.
Tim
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list