[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XPATH for attribute with different namespace from element


Subject: Re: [xsl] XPATH for attribute with different namespace from element
From: Joerg Pietschmann <joerg.pietschmann@xxxxxx>
Date: Mon, 04 Feb 2002 09:42:38 +0100

Edward.Middleton@xxxxxxxxxxx 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



Current Thread