This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XPATH for attribute with different namespace from element
- From: Joerg Pietschmann <joerg dot pietschmann at zkb dot ch>
- To: XSL List <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 04 Feb 2002 09:42:38 +0100
- Subject: Re: [xsl] XPATH for attribute with different namespace from element
- Organization: ZKB
- Reply-to: xsl-list at lists dot mulberrytech dot com
Edward.Middleton@nikonoa.net wrote:
> I am trying to make a template match for an rss about attribute
> but I can't seem to get anything to work.
...
> This is my rss file
> <?xml version="1.0" encoding="UTF-8"?>
> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> xmlns="http://purl.org/rss/1.0">
^^^^^^^^^^^^
Here is the problem: you are putting the "channel" element in
a namespace. This means...
> <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> xmlns="http://purl.org/rss/1.0">
...
> <xsl:template match="rdf:RDF/channel/@rdf:about">
^^^^
...in order to match it, is has to be in the namespace too. Declaring
the default namespace as you did above only affects literal result
elements in the style sheet, not the XPaths araund in matches and
selects. You have to use an explicit namespace prefix:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rss="http://purl.org/rss/1.0">
...
<xsl:template match="rdf:RDF/rss:channel/@rdf:about">
That's becoming a FAQ.
HTH
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list