[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
|