Subject: Re: [xsl] Noob: how to use "for each" in this context? From: "Barry van Weldam" <barry@xxxxxxx> Date: Wed, 17 Sep 2003 11:10:32 +0200 |
thks guys, Gonna try your suggestions and see if i can follow it as for the xml-data it is just the structure i showed. The nodes have actually very 'long' descriptive names. Furthermore, the xml file isn't generated by me. I just have to style the data. My experience with .xml is in combination with flash mx & php. And now i am taking a dive into XSL(-fo) ----- Original Message ----- From: "Jim Fuller" <jim.fuller@xxxxxxxxxxxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Wednesday, September 17, 2003 10:46 AM Subject: RE: [xsl] Noob: how to use "for each" in this context? no need for xsl:for-each try nesting your templates <xsl:template match="Row"> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:apply-templates select="."/> </fo:block> </fo:table-cell> </xsl:template> then supply other matching templates <xsl:template match="NodeA"> </xsl:template> <xsl:template match="Node1"> </xsl:template> though I suspect that you may want to take a look at restructering your xml data.....be descriptive with your element names... is your data really data-centric instead of document centric or have you just got into the habit of thinking of data in tables and rows ? try the following sites for more information www.dpawson.co.uk http://www.w3.org/Style/XSL/ www.topxml.com gl, jim fuller -----Original Message----- From: Barry van Weldam [mailto:barry@xxxxxxx] Sent: 17 September 2003 09:29 To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] Noob: how to use "for each" in this context? Hi, I realised i am repeating this code in my .xsl: ------------------------------------------ <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='($node="null")'></xsl:when> <!--or the value--> <xsl:otherwise><xsl:value-of select="$node"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> ------------------------------------ Now i want to use a for each, how do i do that? BTW: My .xml -------------------------------------------------------- <Root> <Table> <Row> <nodeA>Total</nodeA> <node1>null</node1> <node2>777</node2> etc and this is the part of the .xsl i want to streamline ------------------------------------------------------------------------------ <xsl:template match="//Row"> <fo:table-row> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:value-of select="nodeA"/></fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node1="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node1"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node2="null")'></xsl:when> <xsl:otherwise> <xsl:value-of select="node2"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node3="null")'></xsl:when> <xsl:otherwise> <xsl:value-of select="node3"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node4="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node4"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node5="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node5"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node6="null")'></xsl:when> <xsl:otherwise> <xsl:value-of select="node6"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node7="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node7"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node8="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node8"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node9="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node9"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node10="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node10"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node11="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node11"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> <fo:table-cell border="solid black 1 px" border-collapse="collapse"> <fo:block> <xsl:choose> <!--Here we put nothing if nodevalue=null --> <xsl:when test='(node12="null")'></xsl:when> <xsl:otherwise><xsl:value-of select="node12"/></xsl:otherwise> </xsl:choose> </fo:block> </fo:table-cell> </fo:table-row> ------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Noob: how to use "for eac, Jim Fuller | Thread | RE: [xsl] Noob: how to use "for eac, Jarno . Elovirta |
RE: [xsl] Noob: how to use "for eac, Jim Fuller | Date | Re: [xsl] Problem accessing child n, David Carlisle |
Month |