This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: XPATH for attribute with different namespace from element


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]