Subject: Re: [xsl] String extraction From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx> Date: Thu, 30 Sep 2004 07:24:47 -0700 (PDT) |
Hi Sven, Please try this 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" indent="yes"/> <xsl:template match="/top"> <xsl:variable name="str1" select="substring-before(., '(')"/> <xsl:variable name="str2"> <xsl:choose> <xsl:when test="contains(substring-after(., '('), ',')"> <xsl:value-of select="substring-before(substring-after(., '('), ',')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-before(substring-after(., '('), ')')"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="str3" select="substring-before(substring-after(., ','), ')')"/> <html> <head> <title/> </head> <body> <table> <tr> <td> <xsl:value-of select="$str1"/> </td> <td> <xsl:value-of select="$str2"/> </td> </tr> <xsl:call-template name="generateTRs"> <xsl:with-param name="str" select="$str3"/> <xsl:with-param name="delim" select="','"/> </xsl:call-template> </table> </body> </html> </xsl:template> <!-- a recursive template to generate <tr>s --> <xsl:template name="generateTRs"> <xsl:param name="str"/> <xsl:param name="delim"/> <xsl:choose> <xsl:when test="contains($str, ',')"> <tr> <td/> <td> <xsl:value-of select="substring-before($str, ',')"/> </td> </tr> <xsl:call-template name="generateTRs"> <xsl:with-param name="str" select="substring-after($str, ',')"/> <xsl:with-param name="delim" select="$delim"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <tr> <td/> <td> <xsl:value-of select="$str"/> </td> </tr> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> Regards, Mukul --- Sven Waibel <sven.waibel@xxxxxxxx> wrote: > Hi Mukul, > > that's a very good example, but i don't know how > many p exist. So i don't know how many variables i > have to create. > > Sven > > Mukul Gandhi wrote: > > > Hi Sven, > > Please try this 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" indent="yes"/> > > > > <xsl:template match="/top"> > > <xsl:variable name="str1" > > select="substring-before(., '(')"/> > > <xsl:variable name="str2" > > select="substring-before(substring-after(., '('), > > ',')"/> > > <xsl:variable name="str3" > > > select="substring-before(substring-after(substring-after(., > > '('), ','), ',')"/> > > <xsl:variable name="str4" > > > select="substring-before(substring-after(substring-after(substring-after(., > > '('), ','), ','), ')')"/> > > <html> > > <head> > > <title/> > > </head> > > <body> > > <table> > > <tr> > > <td><xsl:value-of select="$str1" /></td> > > <td><xsl:value-of select="$str2" /></td> > > </tr> > > <tr> > > <td/> > > <td><xsl:value-of select="$str3" /></td> > > </tr> > > <tr> > > <td/> > > <td><xsl:value-of select="$str4" /></td> > > </tr> > > </table> > > </body> > > </html> > > </xsl:template> > > > > </xsl:stylesheet> > > > > When the above XSL is applied to XML - > > > > <?xml version="1.0" encoding="UTF-8"?> > > <top>person(p1,p2,p3)</top> > > > > it produces the desired output. > > > > Regards, > > Mukul > > > > --- Sven Waibel <sven.waibel@xxxxxxxx> wrote: > > > > > >>Hello, > >> > >>how can i extract a string from a string: > >> > >>person(p1,p2,p3) > >> > >>I need a table: > >> > >>person p1 > >> p2 > >> p3 > >> > >>I don't know anything about length of p1,p2 or p3. > >> > >>Is is possible? > >> > >>Regards > >>Sven _______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] String extraction, Sven Waibel | Thread | Re: [xsl] String extraction, Sven Waibel |
Re: [xsl] svg dotted rect ?, Herwig Posedu | Date | Re: [xsl] String extraction, Sven Waibel |
Month |