[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XPath Question.
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
|
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
|