Subject: RE: [xsl] Attribute value From: "Shailesh Shinde" <shailesh@xxxxxxxxxxxx> Date: Mon, 28 Nov 2005 16:50:37 +0530 |
Hi All, I have an xsl: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="ISO8859_1" indent="yes"/> <xsl:template match="/"> <html><xsl:text>
</xsl:text> <head><xsl:text>
</xsl:text> <title>INDEX</title> </head> <body><ul> <xsl:for-each select="//top"> <li> <object type="text/sitemap"><xsl:text>
</xsl:text> <xsl:apply-templates select="keys/key" /> </object></li> </xsl:for-each> </ul> <xsl:text>

</xsl:text> </body> </html> </xsl:template> <xsl:template match="keys/key"> <param name="Keyword" value="{.}"/> <test name="Local"> <xsl:attribute name="value"> <xsl:value-of select="current()/parent::*/@path"/> </xsl:attribute> </param> </xsl:template> Using this xsl I am getting <test name="Keyword" value="{.}"/> But I can't able to get <test name="Local" value=""/> When looking for keys/key in particular file it should add @path value to param. Output as required: <test name=Name value="fdsfdfdf"/> <test name="local" value="c:\test\test001\sec1.htm"/> <test name=Name value=" kjkhkhhj "/> <test name="local" value="c:\test\test001\sec1.htm"/> As there are two key element for each i need <test name="Local" value=""/>. How to do this using xsl. -----Original Message----- From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx] Sent: Saturday, November 26, 2005 10:21 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] Attribute value Hi Shailesh, There are well formdness errors in your source XML. In the output HTML, in the first instance you desire <test name="local" and in the second instance you desire <test name="NAME". I guess this is a typo, and you desire <test name="local" in both the cases. I am also curious that <test is not a HTML tag or this is what you want. Can you clarify all the points? Below are the source XML and the stylesheet I think you need <root> <file path="c:\test\test001\sec1.htm"> <top> <p>asafdsf</p> <keys> <key>fdsfdfdf</key> <key>kjkhkhhj</key> </keys> </top> </file> <file path="c:\test\test001\sec2.htm"> <top> <p>asafdsf</p> <keys> <key>fdsfdfdf</key> <key>kjkhkhhj</key> </keys> </top> </file> </root> <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" /> <xsl:template match="/root"> <html> <head> <title/> </head> <body> <ul> <xsl:for-each select="file"> <li> <xsl:for-each select="top/keys/key"> <test name="Name" value="{.}"/> </xsl:for-each> <test name="local" value="{@path}"/> </li> </xsl:for-each> </ul> </body> </html> </xsl:template> </xsl:stylesheet> Regards, Mukul On 11/25/04, Shailesh Shinde <shailesh@xxxxxxxxxxxx> wrote: > Hi All, > > I have an xml file as: > > <file path="c:\test\test001\sec1.htm"> > <top> > <p>asafdsf</p> > <keys> > <key>fdsfdfdf</key> > <key>kjkhkhhj</key> > </keys> > <top> > </file> > <file path="c:\test\test001\sec2.htm"> > <top> > <p>asafdsf</p> > <keys> > <key>fdsfdfdf</key> > <key>kjkhkhhj</key> > </keys> > <top> > </file> > > And so on.... > > I am trying to get the output as: > > <html><body> > <ul><li> > <test name=Name value="fdsfdfdf"/> > <test name=Name value=" kjkhkhhj "/> > <test name="local" value="c:\test\test001\sec1.htm"/> > </li> > <li> > <test name=Name value="fdsfdfdf"/> > <test name=Name value="kjkhkhhj"/> > <test name="NAME" value="c:\test\test001\sec2.htm"/> > </li> > </ul> > </body></html> > > > When I am searching for key value from particular file the @path value > should come in value="" attribute. > > > How should i get this? > > Thanks, > Shailesh
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Attribute value, Shailesh Shinde | Thread | [xsl] index grouping and sorting, Shailesh Shinde |
Re: [xsl] equivalent od #define, Robert Van Gemert | Date | [xsl] XSLT Question regarding conve, moshe malaver |
Month |