Subject: RE: Re: [xsl] formatting issues From: cknell@xxxxxxxxxx Date: Wed, 01 Nov 2006 16:54:18 -0500 |
I'll try to help, but first I need the answers to some questions. The first template matches the element "states" =========================== <xsl:template match="states"> <br/> <xsl:if test="//state/sym='R'"> ... content omitted for clarity ... </xsl:template> =========================== In your source XML document, is "states" the parent of all "state" elements, or do some "state" elements have "state" child elements? Further along in this template you have this: =========================== <xsl:for-each select="//state"> =========================== Unless you are planning to sort the elements, you probably don't need xsl:for-each, just use xsl:apply-templates. Further along still you have this: =========================== <td><xsl:choose>xsl:value-of select="Val3"/></td> =========================== Why do you have an opening xsl:choose without a closing tag and no xsl:when or xsl:otherwise within? Still further along you have this: =========================== <xsl:apply-templates select="document(concat($server,'/getinfo.dox?...........)"/> =========================== Just what is it you are trying to get by concatenating the value of the variable or paramater $server with the string "'/getinfo.dox?..........."? These problems aside, if your real XSLT works at all then it must be legal XML, which your sample is clearly not. I suspect your problem lies in these templates: <xsl:template match="data/Val5"> <td><xsl:value-of select="."/></td> </xsl:template> <xsl:template match="data/Val6"> <td><xsl:value-of select="node()"/></td> </xsl:template> <xsl:template match="data/Val7"> <td><xsl:value-of select="node()"/></td> </xsl:template> <xsl:template match="data/Val8"> <td><xsl:value-of select="node()"/></td> </xsl:template> If the root element of the document you are getting with <xsl:apply-templates select="document(concat($server,'/getinfo.dox?...........)"/> is "data", then you have omitted the document root from the "match" attribute. The correct XPath for these would begin with "/", as in match="/data/Val8". -- Charles Knell cknell@xxxxxxxxxx - email -----Original Message----- From: ms <mina_hurray@xxxxxxxxx> Sent: Wed, 1 Nov 2006 12:45:41 -0800 (PST) To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: Re: [xsl] formatting issues Hi: Can someone please reply to this ? I have been pretyt frustrated with this problem and would really appreciate if anyone can help. --- ms <mina_hurray@xxxxxxxxx> wrote: > I have tried everything possible and have failed to > format this XML. > > My XSLT looks like this: > > <xsl:template match="states"> > <br/> > <xsl:if test="//state/sym='R'"> > <table width="100%"> > <tr> > <td colspan="8"> > <b>STATES: </b> > </td> > </tr> > <tr> > <td width="9%"> > <u>Val1</u> > </td> > <td width="15%"> > <u>Val2</u> > </td> > <td width="7%"> > <u>Val3</u> > </td> > <td width="7%"> > <u>Val4</u> > </td> > <td width="9%"> > <u>Val5</u> > </td> > <td width="21%"> > <u>Val6</u> > </td> > <td width="15%"> > <u>Val7</u> > </td> > <td width="7%"> > <u>Val8</u> > </td> > </tr> > <xsl:for-each select="//state"> > <xsl:choose> > <xsl:when test="sym='R'"> > <tr> > <td> > <xsl:value-of select="Val1"/> > </td> > <td> > <xsl:value-of select="Val2"/> > </td> > <td> > <xsl:choose> > > <xsl:value-of select="Val3"/> > > </td> > <td> > <xsl:value-of select="Val4"/> > </td> > <xsl:variable name="v1"> > <xsl:value-of select="Val1"/> > </xsl:variable> > <xsl:variable name="v2"> > <xsl:value-of select="Val2"/> > </xsl:variable> > > > <xsl:apply-templates > select="document(concat($server,'/getinfo.dox?...........)"/> > </tr> > </xsl:when> > </xsl:choose> > </xsl:for-each> > </table> > </xsl:if> > </xsl:template> > <xsl:template match="results"> > <tr> > <xsl:apply-templates/> > </tr> > </xsl:template> > <xsl:template match="data"> > <xsl:apply-templates/> > </xsl:template> > <xsl:template match="data/Val5"> > <td> > <xsl:value-of select="."/> > </td> > </xsl:template> > <xsl:template match="data/Val6"> > <td> > <xsl:value-of select="node()"/> > </td> > </xsl:template> > <xsl:template match="data/Val7"> > <td> > <xsl:value-of select="node()"/> > </td> > </xsl:template> > <xsl:template match="data/Val8"> > <td> > <xsl:value-of select="node()"/> > </td> > </xsl:template> > > > Now, Val1, Val2, Val3, Val4 are available in the > input > XML SO I am not concerned about them becoz they > format > fine. > > Val5, Val6, Val7, and Val8 are retrieved thru a > server > call using JSP where it return the XML which looks > like below: > > <results> > > <data> > <Val5>something</Val5> > <Val6>something</Val6> > <Val7>something</Val7> > <Val8>P</Val8> > </data> > > <data> > <Val5>something</Val5> > <Val6>something</Val6> > <Val7>something</Val7> > <Val8>P</Val8> > </data> > > </results> > > How do I format this to XHTML view. The above XSLT > does not seem to work on this. Thank you for all > your help. > > > > ____________________________________________________________________________________ > Want to start your own business? Learn how on Yahoo! > Small Business > (http://smallbusiness.yahoo.com) > > ____________________________________________________________________________________ We have the perfect Group for you. Check out the handy changes to Yahoo! Groups (http://groups.yahoo.com)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] formatting issues, ms | Thread | RE: Re: [xsl] formatting issues, ms |
Re: [xsl] formatting issues, Abel Braaksma | Date | RE: [xsl] formatting issues, Michael Kay |
Month |