|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: one xsl file for two parsings
I tried to think by myself (!) and found a part of the
answer. Since I am not sure it is correctly written,
or if there is a better way, here is what I've done.
Joseph Vallot a écrit :
>
> I want to write an xsl file to process several xml files, and result
> (parsing)
> would depend on a given field value, and I don't see how to do that.
>
> Example:
>
> xml #1 would be
> ===
> <?xml version="1.0"?>
> <mymsg>
> <qty>123</qty>
> <type>new</type>
> <code>5173</code>
> </mymsg>
> ===
> and parsed into
> ===
> <?xml version="1.0"?>
> <new>
> <qty>123</qty>
> <code>5173</code>
> </new>
> ===
>
> when xml #2 would be
> ===
> <?xml version="1.0"?>
> <mymsg>
> <qty>123</qty>
> <type>cancel</type>
> <code>5173</code>
> </mymsg>
> ===
> and parsed into
> ===
> <?xml version="1.0"?>
> <cancel>
> <code>5173</code>
> </cancel>
> ===
>
> In this example, parsing depend on <type> value.
xsl I wrote is :
===
<?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:apply-templates mode="new" />
</NEW>
</xsl:when>
<xsl:when test="./type='cancel'">
<CANCEL>
<xsl:apply-templates mode="cancel" />
</CANCEL>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="/mymsg/*" mode="new">
(new) <xsl:copy><xsl:value-of select="." /></xsl:copy>
</xsl:template>
<xsl:template match="/mymsg/*" mode="cancel">
(cancel) <xsl:copy><xsl:value-of select="." /></xsl:copy>
</xsl:template>
</xsl:stylesheet>
===
note : "(new)" and "(cancel)" strings are just here to
see where parser goes !
questions are :
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)
Thank you in advance
--
Joseph
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
|

Cart








