Hello Ross,
ross(_at_)webwolves(_dot_)com wrote:
Dave,
Thank you again for helping me with this. Have you written a book or
anything I can buy? :-)
We are getting very close. I can output the name of each column, but somehow
I am having trouble figuring how to actually use that column name as the
data attribute name. Your original syntax:
<xsl:value-of select="$row/@*[name()=.]">
Yes, this seems to be wrong. It's true for every attribute, whose value
is the same as its name, e.g. test="test". Both name() and . refer to
the attribute.
...didn't didn't seem to work (I get no data). And yet if I do <xsl:value-of
select="." /> I do get the column names. Here's what I have so far, which is
basically a straight copy of what you gave me.
<xsl:variable name="columns"
select="/root/config/columnList/column/@name"/>
This will only store the value of the first column in the variable (a
string). Change it to
<xsl:variable name="columns" select="/root/config/columnList/column"/>
to store a node set of the columns.
<table width="95%" class="reporttable" cellpadding="2" cellspacing="2">
<xsl:for-each select="/root/row">
<tr>
<xsl:variable name="aRow" select="."/>
<xsl:for-each select="$columns">
<xsl:variable name="aColumnsName" select="name()"/>
<td>
<xsl:value-of select="$aRow/column[(_at_)name = $aColumnsName]" />
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
Also untested and without knowing the XML structure, but I hope it works ...
Thanks again.
== Ross ==
Regards,
Joerg
PS: Please don't use TABs as indenting in mails. They made XML really
unreadable. 2 or 4 spaces are really enough.
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of
David
Carlisle
The column ordering is a concern. The sort simply does an alphabetic
sort. Somehow I need to apply the user's column selection order as well.
ah I was lacking meta markup. I did xsl:sort on name because that would
work for column1 column2 etc, I should have known they were not the real
names....
so actually I'd zap the key and instead do
<xsl:variable name="columns"
select="/root/config/columnList/column/@name"/>
....
<xsl:for-each select="row">
<xsl:variable name="row" select="."/>
<xsl:for-each select="$columns">
<xsl:value-of select="$row/@*[name()=.]">
untested as ever.
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list