Re: [xsl] to draw a table in xsl

Subject: Re: [xsl] to draw a table in xsl
From: ac <ac@xxxxxxxxxxxxx>
Date: Thu, 17 Sep 2009 08:57:30 -0400
Hi Vasu,

The key could be a nice extra, especially if the source became larger, which was not specified. I doubt that there would be a performance gain in this sample.
It does not seem to make the xslt xml referencing any clearer or simpler either, in this case.


Mostly, the requested output was:
Table
100
102
but your stylesheet gives
Table: 100 , 102 ,
which seems wrong.

Also, your output is in an incomplete, invalid, and unrenderable html file
while the request was just for output.

If it is to be in an html file, apart from required enclosing elements, there may also be a few other considerations, including how to generate the linefeeds instead of the commas.

If it is to be a text file rather, or an XML element or format of some kind, that would be different also.

All that was specified was output, with linefeeds, and xsl:message seems like the simplest way to do just that.

Cheers,
ac



Hey AC,
What did u expect the <xsl:message> will do???

  <xsl:message> element writes a message to the output. Normally used
for printing debug messages or error messages...  you probably want a
value-of select .. to be able to get the value out...

Try this XSL.. Notice the use of Keys..

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:key name="column" match="/root/tabledisplayedcolumns/columnname"
use="text()"/>
<xsl:template match="/">
Table:
<xsl:for-each select = "/root/tablevalues/*[key('column',name())]">
<xsl:value-of select = "."/>
,
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>



2009/9/17 ac <ac@xxxxxxxxxxxxx>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";  version="1.0">

  <xsl:template match="/">
      <xsl:message>Table</xsl:message>
      <xsl:for-each select="root/tabledisplayedcolumns/columnname">
          <xsl:message>
              <xsl:value-of select="root/tablevalues/*[current() eq name()]"/>
          </xsl:message>
      </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

for example.


How can I achive this in xsl


<root> <tablevalues> <column1>100</column1> <column2>101</column2> <column3>102</column3> </tablevalues> <tabledisplayedcolumns> <columnname>column1</columnname> <columnname>column3</columnname> </tabledisplayedcolumns> </root>


Output:


  Table
  100
  102




-- Vasu Chakkera Numerical Algorithms Group Ltd. Oxford www.vasucv.com




-- Vasu Chakkera Numerical Algorithms Group Ltd. Oxford www.vasucv.com

Current Thread