[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: OR statement
> 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)"> > <xsl:variable name="cdate" select="name()"/> > <xsl:element name="pubdate"> > <xsl:value-of select="$cdate"/> > </xsl:element> > </xsl:if> > This XPath expression is probably what you wanted: <xsl:if test="name() = 'pubdate' or name() = 'dc:date'"> Note the string literals for the names of the nodes. Otherwise, they are considered location paths. > And > > <xsl:choose> > <xsl:when test="name() = pubdate"> > <xsl:element name="pubdate"> > <xsl:value-of select="node()"/> > </xsl:element> > </xsl:when> > <xsl:when test="name() = dc:date"> > <xsl:element name="pubdate"> > <xsl:value-of select="node()"/> > </xsl:element> > </xsl:when> > <xsl:otherwise></xsl:otherwise> > </xsl:choose> Again, note the string literals: <xsl:when test="name() = 'pubdate'"> > > And I'm not getting the desired results. You might try this: <xsl:template match="pubdate | dc:date"> <pubdate> <xsl:value-of select="."/> </pubdate> </xsl:template> Without seeing more of your stylesheet, it's pretty hard to guess at the processing model, but I'm assuming the code snippets you posted were inside an xsl:template instruction. Dave XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|