xslt转换xml的问题!!!
我的xslt文件很简单,但是在.net(c#)里边通过
XslTransform _Transform = new XslTransform();
_Transform.Load(Server.MapPath( "XSLTFile1.xslt "));
调用时却老是出现下边的错误,很郁闷:
System.Xml.Xsl.XsltCompileException: file:///D:/xml/exmDropDownList/XSLTFile1.xslt(10,6) : ---> System.Xml.Xsl.XsltException: “xsl:apply-template”不能是“body”元素的子级。
我的xslt文件如下:
<?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 ' indent= 'yes ' doctype-public= '-//W3C//DTD FTML 3.2 Final//EN '/>
<xsl:template match= "/ ">
<html>
<head>
<title> lizi </title>
</head>
<body>
<xsl:apply-template select= "//item "/>
</body>
</html>
</xsl:template>
<xsl:template match= "item ">
<div>
Name= <xsl:value-of select= "@id "/> ,
Quantity= <xsl:value-of select= "quantity "/>
</div>
</xsl:template>
</xsl:stylesheet>
我觉得这样没错啊,怎么老是又那样的问题呢?
我在cs文件中是这样写的:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
try
{
XPathDocument _sourceXml = new XPathDocument(Server.MapPath( "XMLFile1.xml "));
XslTransform _Transform = new XslTransform();
_Transform.Load(Server.MapPath( "XSLTFile1.xslt "));
_Transform.Transform(_sourceXml,null,Response.Output);
}
catch(Exception e1)
{
Response.Write(e1.ToString());
}
}
我用的是.net2003企业版,这样有错吗?
------解决方案--------------------将
<xsl:apply-template select= "//item "/>
改成
<xsl:apply-templates select= "//item "/>