This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: one xsl file for two parsings
- To: xsl-list at mulberrytech dot com
- Subject: Re: one xsl file for two parsings
- From: Dan Morrison <dman at es dot co dot nz>
- Date: Wed, 05 Apr 2000 03:16:04 +1200
- Organization: Disorganised
- References: <38E9EC98.E7F45238@axime-is.fr> <38EA089A.143D47CC@axime-is.fr>
- Reply-To: xsl-list at mulberrytech dot com
Joseph Vallot wrote:
> 1. is it the fastest/best/etc way to do that ?
> 2. how do I filter out some initial nodes (<type> has
> to be dropped)
I'd go
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:template match="/mymsg">
> <xsl:choose>
> <xsl:when test="./type='new'">
> <NEW>
<xsl:copy-of match="./qty" />
<xsl:copy-of match="./code" />
> </NEW>
> </xsl:when>
> <xsl:when test="./type='cancel'">
> <CANCEL>
<xsl:copy-of match="./qty" />
<xsl:copy-of match="./code" />
> </CANCEL>
> </xsl:when>
> </xsl:choose>
> </xsl:template>
Simple enough? Or too simple for your real-life version?
If the set of posibilities is bigger (either lots of 'types' or lots of
other values), consider
...
> <xsl:when test="./type='new'">
> <NEW>
<xsl:call-template name="other_values">
> </NEW>
> </xsl:when>
<xsl:when test="...">
...
<xsl:template name="other_values">
<xsl:copy-of match="./qty" />
<xsl:copy-of match="./code" />
...
</xsl:template>
...
.dan.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list