奇怪的transformNode问题!
我是通过在页面创建DOM对象来解析xml文件的!
如下:
test.htm
<html>
<head>
<title>Test</title>
<script language= "javascript">
function init()
{
var strXML = "Test.xml";
var strXSL = "testA.xsl";
//alert("Init Enter");
var xmldom = new ActiveXObject("Msxml2.DOMDocument.4.0");
xmldom.async = false;
xmldom.loadXML(strXML);
//alert("Enter XML");
var xsldom = new ActiveXObject("Msxml2.DOMDocument.4.0");
xsldom.async = false;
xsldom.loadXML(strXSL);
//alert("Enter XSL");
var rtvalue = xmldom.transformNode(xsldom); //这一句一直报样式表无效或为空
//alert("Tranfer");
mdiv.innerHTML rtvalue;
return;
}
</script>
</head>
<body onload="init()">
<div id="mdiv">
</div>
</body>
</html>
Test.xml
<?xml version="1.0" encoding="GB2312"?>
<root>
<A ID="1" name="A1">
<B ID="1" name="B1">1B1Test</B>
<B ID="2" name="B2">1B2Test</B>
<B ID="3" name="B3">1B3Test</B>
</A>
<A ID="2" name="A2">
<B ID="1" name="B1">2B1Test</B>
<B ID="2" name="B2">2B2Test</B>
<B ID="3" name="B3">2B3Test</B>
<B ID="4" name="B4">2B4Test</B>
<B ID="5" name="B5">2B5Test</B>
<B ID="6" name="B6">2B6Test</B>
</A>
</root>
testA.xsl(这个就是“无为”大侠上次帮我写的)
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="root">
<html>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="A">
<xsl:value-of select="@ID" />:<br />
<table border="1" cellpadding="0" cellspacing="0">
<tr><th>Name</th><th>Value</th>
</tr>
<xsl:apply-templates />
</table>
</xsl:template>
<xsl:template match="B">
<tr>
<td><xsl:value-of select="@name" /></td>
<td><xsl:value-of select="." /></td>
</tr>
</xsl:template>
</xsl:stylesheet>
现在的问题是如果用xml中直接链接样式表的话,可以看到应有的效果,但是通过Dom就不行了,我怀疑是不是文件没有读入成功阿!我用了全路径也不行的说!
我快要崩溃了,谁来救救我阿!