Subject: Re: [xsl] XPath Question. From: "Joerg Heinicke" <joerg.heinicke@xxxxxx> Date: Fri, 21 Dec 2001 03:46:50 +0100 |
Hello Raj, I created a mapping.xml with the follwing structure: <mapping> <map OrderId="1001" mapped="1"/> <map OrderId="1002" mapped="2"/> <map OrderId="1003" mapped="3"/> <map OrderId="1004" mapped="4"/> </mapping> The I have the followng stylesheet: <xsl:variable name="mapping" select="document('mapping.xml')/mapping"/> <xsl:template match="/Customer"> <xsl:text>OUT</xsl:text> <xsl:apply-templates select="Order[OrderId = $mapping/map/@OrderId]"/> <xsl:if test="Order[not(OrderId = $mapping/map/@OrderId)]"> <xsl:text>*99</xsl:text> </xsl:if> </xsl:template> <xsl:template match="Order"> <xsl:text>*</xsl:text> <xsl:value-of select="$mapping/map[@OrderId = current()/OrderId]/@mapped"/> </xsl:template> The output: OUT*1*2*3*4*99. Hope this helps, Joerg > Hi All, > My XML file is some thing like this > > <Customer> > <Order> > <OrderId>1001</OrderId> > </Order> > <Order> > <OrderId>1002/OrderId> > </Order> > <Order> > <OrderId>1003</OrderId> > </Order> > <Order> > <OrderId>1004</OrderId> > </Order> > <Order> > <OrderId>1007</OrderId> > </Order> > <Order> > <OrderId>1009</OrderId> > </Order> > </Customer> > > I have to print the output by mapping the codes > 1001 - 1 > 1002 - 2 > 1003 - 3 > 1004 - 4 > If any OrderId is not in the above mapping table, I have to print 99. > > Output will be something like this: > OUT*1*2*3*4*99*99 > > My Problem here is if I have more than one OrderId codes that does not match > the mapping table, I have to print only one 99. > > Can any body help me, on How I can do that. > > Thanks, > Raj.. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XPath Question., Avula, Raj | Thread | RE: [xsl] XPath Question., Avula, Raj |
[xsl] XPath Question., Avula, Raj | Date | Re: [xsl] how to rearrange nodes ba, Mark Nahabedian |
Month |