Subject: Re: [xsl] modify output document elements From: "Christophe Marchand cmarchand@xxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 5 Mar 2020 08:43:55 -0000 |
<xsl:mode name="tableModif" on-no-match="shallow-copy"/> <xsl:template....> B <xsl:variable name="firstStep" as="element(table)"> B B B <table border="0" cellspacing="0"> B B B B B <!-- your whole table code here --> B B B </table> B </xsl:variable> B <xsl:apply-templates select="$firstStep" mode="tableModif"/> </xsl:template>
<xsl:template match="th" mode="tableModif"> B <xsl:copy> B B B <xsl:attribute name="style">font-weight: bold;</xsl:attribute> B B B <xsl:apply-templates select="node()|@*"/> B </xsl:copy> </xsl:template>
Hope this helps, Christophe
Hello,
I have a stylesheet which creates a HTML output document dynamically based on the incoming XML file. I use some for-each loop to get the processing done in the right order. My layout causes the stylesheet to look like this:
<xsl:template name="details_table">
<table border="0" cellspacing="0">
<tr>
<td width="64px">
<a href="#" onclick="toggle('{$details_table}')" title="show/hide details">
<img src="show_hide.png"/>
</a>
</td>
<td>
Details
</td>
</tr>
<table id="{$details_table}" cellspacing="3" style="display: block">
<tr>
<td width="64px">
<img border="0" src="{$imagedir}/null.gif"/>
</td>
<th align="left">Start</th>
<th align="left">End</th>
<th align="left">Duration [h]</th>
<th align="left">Type</th>
<th align="left">Category</th>
<th align="left">Comment</th>
</tr>
<xsl:for-each select="entry[severity='STATISTICS']/statistics_category">
...
<xsl:choose>
<xsl:when test=".='Down'">
<td width="150" valign="top">
<xsl:choose>
<xsl:when test="../Down='not_set'">
<font color="red">not_set</font>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="../Down"/>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:when>
...
</xsl:for-each>
</table>
</table>
</xsl:template>
Now I would like to modify the style of the details_table depending on the outcome of the test within the for-each loop. Since the table element has already been created, I do not know how one could do this without changing the overall logic. Is there a way to access the elements of the created HTML DOM tree from within the stylesheet? Or am I hunting in the wrong direction?!
Any ideas/help welcome - greetings, Raimund Kammering
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] modify output document el, Michael Kay mike@xxx | Thread | [xsl] group-starting-with and endin, Byomokesh Sahoo saho |
Re: [xsl] modify output document el, Michael Kay mike@xxx | Date | [xsl] group-starting-with and endin, Byomokesh Sahoo saho |
Month |