Subject: RE: [xsl] a namespace problem From: "Dion Houston" <dionh@xxxxxxxxxxxxx> Date: Wed, 3 Apr 2002 08:12:32 -0800 |
Hi Bryan: The most obvious thing I see is the use of a default namespace. This is a highly misunderstood area of XPath/XSLT. The short of it: XPath does not consider namespace prefixes, but rather URIs when comparing elements... In your case, the following are identical documents: <Foo xmlns="http://purl.org/rss/1.0/"/> <bar:Foo xmlns:bar="http://purl.org/rss/1.0/"/> In XPath match expressions without a prefix are considered to be a NULL (not default) namespace. So for both of the above two documents: <xsl:template match="Foo"> Will select no nodes. To get what you expect, simply choose an arbitrary namespace prefix for your default namespace, and use that in expressions... Using the above prefix bar, the following will work: <xsl:template match="bar:Foo"> For either of the two document instances above. HTH! Dion -----Original Message----- From: Bryan Rasmussen [mailto:bry@xxxxxxxxxx] Sent: Wednesday, April 03, 2002 7:30 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] a namespace problem hi, I'm processing a rss file and I got some strange(to-me) results, no doubt due to my misunderstanding apropos the functioning of multiple namespaces in a document, anyhow I was just wondering why this <xsl:template match="rdf:*"> <xsl:apply-templates select="channel"/></xsl:template> <xsl:template match="channel"><h3 title="{description}"><a href="{link}"><xsl:value-of select="title"/></a></h3> <xsl:apply-templates/> </xsl:template> didn't work when this is <xsl:template match="rdf:*"> <xsl:apply-templates select="*"/></xsl:template> <xsl:template match="*[local-name()='channel']"> <h3 title="{child::*[local-name()='description']}"><a href="{child::*[local-name()='link']}"><xsl:value-of select="child::*[local-name()='title']"/></a></h3> <xsl:apply-templates/> </xsl:template> of course I expected I might have to make some use of local-name() but not quite so much I'm using msxml 4 the rss file is as follows: <?xml version="1.0" encoding="iso-8859-1"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" > <channel rdf:about="http://www.bizreport.dk"> <title>BizReport</title> <link>http://www.bizreport.dk</link> <description>Internet Business Starts Here</description> <dc:language>da</dc:language> <items> <rdf:Seq> <rdf:li rdf:resource="http://www.bizreport.dk/article.php?id=410" /> <rdf:li rdf:resource="http://www.bizreport.dk/article.php?id=409" /> <rdf:li rdf:resource="http://www.bizreport.dk/article.php?id=408" /> <rdf:li rdf:resource="http://www.bizreport.dk/article.php?id=407" /> <rdf:li rdf:resource="http://www.bizreport.dk/article.php?id=406" /> </rdf:Seq> </items> <image rdf:resource="http://www.adsguide.com/templates/images/bizreport_network 02.g if" /> </channel> <image rdf:about="http://www.adsguide.com/templates/images/bizreport_network02. gif" > <title>BizReport</title> <url>http://www.adsguide.com/templates/images/bizreport_network02.gif</u rl> <link>http://www.bizreport.dk/</link> </image> <item rdf:about="http://www.bizreport.dk/article.php?id=410"> <title>Spandt online rejsemarked: 150 milliarder kroner i udsigt?</title> <link>http://www.bizreport.dk/article.php?id=410</link> <description>Rejsemarkedet gar mod udviklingen. Online rejsemarkedet er nemlig praget af en markant vakst, og det synes hverken den 11....</description> </item> <item rdf:about="http://www.bizreport.dk/article.php?id=409"> <title>Opfind eller forsvind - Mindlab for staten</title> <link>http://www.bizreport.dk/article.php?id=409</link> <description>Inde i Erhvervs- og Okonomiministeriet sidder en mand, der har store visioner for den offentlige sektors fremtid. Han hedder...</description> </item> <item rdf:about="http://www.bizreport.dk/article.php?id=408"> <title>Ideministeriet</title> <link>http://www.bizreport.dk/article.php?id=408</link> <description>Idekapitalen i Danmark er mere eller mindre ikke-eksisterende. Vi har en af verdens bedst uddannede arbejdsstyrker og er et...</description> </item> <item rdf:about="http://www.bizreport.dk/article.php?id=407"> <title>Fremtidens tv i dag</title> <link>http://www.bizreport.dk/article.php?id=407</link> <description>af Keld Reinicke, Kanalredaktor, TV 2 ZuluDet var en ganske almindelig dag, jeg besluttede mig for at finde ud...</description> </item> <item rdf:about="http://www.bizreport.dk/article.php?id=406"> <title>iTV mangler stadig skarmtakke</title> <link>http://www.bizreport.dk/article.php?id=406</link> <description>Udnyt mediekonvergensen, bade i markedsforingen og salgsprocessen! Lav strategiske alliancer og del investeringen i de forskellige medie-platforme! Men husk...</description> </item> </rdf:RDF> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XML-QL, Michael Kay | Thread | RE: [xsl] a namespace problem, Bryan Rasmussen |
[xsl] a namespace problem, Bryan Rasmussen | Date | [xsl] Replacing Attributes, stevenson |
Month |