[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Parsing nodes with different depths in XML simult
On 13/02/2008, Ravi Roy <ravi.aroy@xxxxxxxxx> wrote: > Hi, > > I want parse nodes with different depths in XML, but I am not sure how > to achieve this, for example I have following test.xml : > > <?xml version="1.0" encoding="UTF-8"?> > <root> > <sub1> > <sub2> > <sub3> > <sub4 name="xyz" /> > <sub5 name="abc" /> > <sub6 name="jkl" /> > <sub7 name="stu" /> > </sub3> > </sub2> > </sub1> > <suite name="xyz.123" value="20" /> > <suite name="567.abc" value="10" /> > <suite name="345.jkl" value="50" /> > <suite name="stu.578" value="40" /> > </root> > > I am able to make the table like the following, but value in the table > would be based on the match in suite name, like if string sub4 name > matches the string in suite name then in the following table I want to > make the entry of 20 against sub4 : > > ------------------------------------- > | sub4 | sub5 |sub6 |sub7| > |---------|---------|--------|-------| > | | | | | > | | | | | > > > Does someone know how to achieve this in XSL ? One way is to use a key: <xsl:key name="suite-by-name" match="suite" use="translate(@name, '1234567890.',''')"/> with <xsl:template match="sub4|sub5..."> <xsl:value-of select="key('suite-by-name', @name)/@value"/> The translate() part of the key ensures only the a-z characters are used - you might need to adjust this if your real world XML doesn't reflect the example. cheers -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
|
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
|