This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
modifying an XSLT Document at runtime
- From: "Sanjay Pandey/Towers Perrin" <pandeys at towers dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 6 Dec 2001 08:46:04 -0500
- Subject: [xsl] modifying an XSLT Document at runtime
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi List,
I have a XML as below ("ErrorMessages.xml")
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="formatErrors.xsl" media="screen"?>
<ErrorMessages xmlns:xs="http://www.w3.org/2001/Schema">
<errorMessage>
<description>desc1</description>
<errorType>1</errorType>
<fieldName>field1</fieldName>
</errorMessage>
<errorMessage>
<description>desc2</description>
<errorType>2</errorType>
<fieldName>field2</fieldName>
</errorMessage>
<errorMessage>
<description>desc3</description>
<errorType>3</errorType>
<fieldName>field3</fieldName>
</errorMessage>
</ErrorMessages>
And XSL is as below ("formatErrors.xsl")
<?xml version="1.0"?>
<!-- <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- <xsl:output method="html"/> -->
<!-- Get error message data -->
<xsl:template match="/">
<html>
<head>
<title>Error Messages</title>
<script>
<xsl:comment>
<![CDATA[
var xslStylesheet=null;
var xmlSource = null;
var attribNode = null;
function sort(field)
{
attribNode.value = field;
ErrorMessages.innerHTML=xmlSource.documentElement.transformNode(xslStylesheet);
}
]]>
</xsl:comment>
</script>
<script for="window" event="onload">>
<xsl:comment>
<![CDATA[
xslStylesheet=document.XSLDocument;
xmlSource = document.XMLDocument;
<!-- xmlSource.load("ErrorMessages.xml"); -->
attribNode = document.XSLDocument.selectSingleNode
("xsl:sort/@select");
sort('errorType');
]]>
</xsl:comment>
</script>
</head>
<body>
<div id="ErrorMessages"></div>
</body>
</html>
</xsl:template>
<xsl:template match="ErrorMessages">
<table border ="0" frame="border" cellspacing ="0" width="100%">
<thead title="Alt-click sorts in descending order.">
<tr style="background:brown;color:red;font-size:10pt">
<th onclick="sort('errorType')" width="20%" style="cursor:hand;">
<div>errorType</div>
</th>
<th onclick="sort('fieldName')" width="20%" style="cursor:hand;">
<div>fieldName</div>
</th>
<th onclick="sort('description')" width="20%" style
="cursor:hand;">
<div>description</div>
</th>
</tr>
</thead>
<tbody id="ErrorMessages_body">
<xsl:for-each select ="//errorMessage">
<xsl:sort select ="errorType"/>
<tr>
<td> <xsl:value-of select ="errorType"/> </td>
<td> <xsl:value-of select ="fieldName"/> </td>
<td> <xsl:value-of select ="description"/> </td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>
I am unable to get it working. When I open the XML in IE5.5, I get syntax
error in line 21 (which appears to be one in XSL with "attribNode.value =
field". This example I am trying is supposed to format my ErrorMessage XML
file so that I have SORT facility while viewing the ErrorMessages.
I have taken most of it from Chapter 9 of Professional XML (wrox).
What is wrong here? Any help would be highly appreciated.
Thanks,
Sanjay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list