|
Subject: RE: [xsl] OR statement From: "Lars Huttar" <lars_huttar@xxxxxxx> Date: Tue, 3 Jun 2003 10:58:09 -0500 |
> I'm transforming two (or more) RSS docs into one master xml
> that I'll be
> using to display on our portal. I'm running into an issue
> where one of the
> rss docs uses a date element called <dc:date> and another
> uses <pubdate>.
> I'd like to transform them so that the final xml document uses only
> <pubdate>.
>
> I've tried a couple of approaches:
> <xsl:if test="(name() = pubdate or dc:date)">
There are a few problems with this...
1) The "or" operator is meant to connect two boolean expressions,
so instead of
name() = pubdate or dc:date
you want
name() = pubdate or name() = dc:date
2) pubdate needs to be quoted; otherwise it is interpreted as
"the string value of the child element of . whose name is 'pubdate'"
so you want
name() = 'pubdate' or name() = 'dc:date'
or
self::pubdate or self::dc:date
The latter form has the benefit of doing proper namespace checking.
(Assuming you've declared the dc namespace in your stylesheet.)
> Anyone know how I can easily check if it's the <dc:date> or
> the <pubdate>
> and tranform it to a <pubdate> if it's the <dc:date> (while inside a
> <xsl:for-each>)?
You were on the right track...
<xsl:if test="self::pubdate or self::dc:date">
<xsl:element name="pubdate">
<xsl:value-of select="." />
</xsl:element>
</xsl:if>
Lars
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] OR statement, david_n_bertoni | Thread | RE: [xsl] template match : node-set, Jonathan Sprinkle |
| Re: [xsl] OR statement, david_n_bertoni | Date | RE: [xsl] template match : node-set, Jonathan Sprinkle |
| Month |