|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
transform an xml doc not working
Hi, I have an xml doc like this:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<DBMON_REPORT generated="Wed Jun 23 10:12:08 BST 2004" title="Title of my report">
<SECTION name="DB_MONITOR_DATA" desc="This table shows the blah de blah">
<TABLE>
<COLUMNS>
<COLUMN name="DB_NAME"></COLUMN>
<COLUMN name="DATE_CREATED"></COLUMN>
<COLUMN name="HOST"></COLUMN>
<COLUMN name="VERSION"></COLUMN>
<COLUMN name="REPORT_DATE"></COLUMN>
<COLUMN name="BUFFER_CACHE_HIT_RATIO"></COLUMN>
<COLUMN name="RELOAD_RATIO"></COLUMN>
<COLUMN name="DATA_DICT_HIT_RATIO"></COLUMN>
<COLUMN name="IN_MEM_SORT_RATIO"></COLUMN>
</COLUMNS>
<ROWS>
<ROW>
<COLUMN> WEBTEST</COLUMN>
<COLUMN> 2002-09-16</COLUMN>
<COLUMN> POTENTIAL</COLUMN>
<COLUMN> 9.2.0.1.0</COLUMN>
<COLUMN> 2004-06-17</COLUMN>
<COLUMN> 0.8692</COLUMN>
<COLUMN> 0.0014</COLUMN>
<COLUMN> 0.99483</COLUMN>
<COLUMN> 0.99966</COLUMN>
</ROW>
</ROWS>
</TABLE>
</SECTION>
<SECTION name="GETHIT_RATIO" desc="This table shows the blah de blah">
<TABLE>
<COLUMNS>
<COLUMN name="REPORT_DATE"></COLUMN>
<COLUMN name="NAMESPACE"></COLUMN>
<COLUMN name="GETHITRATIO"></COLUMN>
<COLUMN name="PINHITRATIO"></COLUMN>
<COLUMN name="RELOADS"></COLUMN>
<COLUMN name="INVALIDATIONS"></COLUMN>
</COLUMNS>
<ROWS>
<ROW>
<COLUMN> 2004-06-17</COLUMN>
<COLUMN> SQL AREA</COLUMN>
<COLUMN> 0.96283</COLUMN>
<COLUMN> 0.98546</COLUMN>
<COLUMN> 7098.0</COLUMN>
<COLUMN> 1025.0</COLUMN>
</ROW>
<ROW>
<COLUMN> 2004-06-17</COLUMN>
<COLUMN> TABLE/PROCEDURE</COLUMN>
<COLUMN> 0.99661</COLUMN>
<COLUMN> 0.98922</COLUMN>
<COLUMN> 9941.0</COLUMN>
<COLUMN> 0.0</COLUMN>
</ROW>
<ROW>
<COLUMN> 2004-06-17</COLUMN>
<COLUMN> BODY</COLUMN>
<COLUMN> 0.99838</COLUMN>
<COLUMN> 0.9965</COLUMN>
<COLUMN> 283.0</COLUMN>
<COLUMN> 0.0</COLUMN>
</ROW>
<ROW>
<COLUMN> 2004-06-17</COLUMN>
<COLUMN> TRIGGER</COLUMN>
<COLUMN> 0.80588</COLUMN>
<COLUMN> 0.58163</COLUMN>
<COLUMN> 2.0</COLUMN>
<COLUMN> 0.0</COLUMN>
</ROW>
</ROWS>
</TABLE>
</SECTION>
</DBMON_REPORT>
and I'm wanting to transform it to html - I'm nearly there, but I can't get the TABLE/COLUMN....ROW stuff which is meant to end up in a html table to come out right....this is my xsl: Code:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:strip-space elements="COLUMN"/>
<xsl:template match="/DBMON_REPORT">
<html>
<head>
<title>
<xsl:value-of select="@title"/>
</title>
</head>
<body>
<h1><xsl:value-of select="@title"/></h1>
<p></p>
Generated: <strong><xsl:value-of select="@generated"/></strong>
<p></p>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION">
<h3> <xsl:value-of select="@name"/> </h3>
<br></br>
<xsl:value-of select="@desc"/>
<br></br>
<xsl:apply-templates/>
<hr />
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE">
<table border="1">
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/COLUMNS">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/COLUMNS/COLUMN">
<td>
<b><xsl:apply-templates/></b>
</td>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS/ROW">
<td>
<xsl:apply-templates/>
</td>
</xsl:template>
</xsl:stylesheet>
and this is an extract from the transformed html: Code:
//.......OK up to now...
<h1>Title of my report</h1>
<p></p>
Generated: <strong>Wed Jun 23 10:12:08 BST 2004</strong>
<p></p>
<h3>DB_MONITOR_DATA</h3>
<br>This table shows the blah de blah<br>
<table border="1">
<tr>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
<td><b></b></td>
</tr>
<tr>
<td>
WEBTEST
2002-09-16
POTENTIAL
9.2.0.1.0
2004-06-17
0.8692
0.0014
0.99483
0.99966
</td>
</tr>
</table>
can you point me in right direction? Thanks! |
|
#2
|
|||
|
|||
|
I figured it out, here's the stylesheet that works (sorry I posted in panic!
)Code:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:strip-space elements="ROW"/>
<xsl:template match="/DBMON_REPORT">
<html>
<head>
<title>
<xsl:value-of select="@title"/>
</title>
</head>
<body>
<h1><xsl:value-of select="@title"/></h1>
<p></p>
Generated: <strong><xsl:value-of select="@generated"/></strong>
<p></p>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION">
<h3> <xsl:value-of select="@name"/> </h3>
<br></br>
<xsl:value-of select="@desc"/>
<br></br>
<xsl:apply-templates/>
<hr />
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE">
<table border="1">
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/COLUMNS">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/COLUMNS/COLUMN">
<td>
<b><xsl:value-of select="@name"/></b>
</td>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS/ROW">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS/ROW/COLUMN">
<td>
<xsl:value-of select="text()"/>
</td>
</xsl:template>
</xsl:stylesheet>
|
|
#3
|
|||
|
|||
|
table formation
hope this code helps u....
i just made couple of changes in ur code .... ---------------------- <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl utput method="html"/><xsl:strip-space elements="COLUMN"/> <xsl:template match="/DBMON_REPORT"> <html> <head> <title> <xsl:value-of select="@title"/> </title> </head> <body> <h1><xsl:value-of select="@title"/></h1> <p></p> Generated: <strong><xsl:value-of select="@generated"/></strong> <p></p> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION"> <h3> <xsl:value-of select="@name"/> </h3> <br></br> <xsl:value-of select="@desc"/> <br></br> <xsl:apply-templates/> <hr /> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION/TABLE"> <table border="1"> <xsl:apply-templates/> </table> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION/TABLE/COLUMNS"> <tr> <xsl:apply-templates/> </tr> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION/TABLE/COLUMNS/COLUMN"> <td> <b><xsl:value-of select="@name"/></b> </td> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS"> <tr> <xsl:apply-templates/> </tr> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS/ROW"> <!--<td> <xsl:value-of select="COLUMN"/> </td>--> <tr> <xsl:apply-templates/> </tr> </xsl:template> <xsl:template match="/DBMON_REPORT/SECTION/TABLE/ROWS/ROW/COLUMN"> <td> <xsl:value-of select="."/> </td> </xsl:template> </xsl:stylesheet> ----------------------------- with regards niha |
![]() |
| Viewing: Dev Shed Forums > Programming Languages - More > XML Programming > transform an xml doc not working |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|