如何通过.net向xslt传递参数?
以下是《ASP.NET v2.0 XML编程指南》中的示例,可是运行时总是报错:“因为安全原因,此 XML 文档中禁用 DTD。要启用 DTD 处理,将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false,并将该设置传递给 XmlReader.Create 方法。”请问该如何修改?
<%@ Page Language= "C# " %>
<%@ Import Namespace= "System.Xml " %>
<%@ Import Namespace= "System.Xml.Xsl " %>
<%@ Import Namespace= "System.Xml.XPath " %>
<script runat= "server ">
void Page_Load(object sender, System.EventArgs e)
{
string xmlPath = Server.MapPath( "aboutus.xml ");
string xslPath = Server.MapPath( "aboutus.xsl ");
XPathDocument xpathDoc = new XPathDocument(xmlPath);
XslCompiledTransform transform = new XslCompiledTransform();
XsltArgumentList argsList = new XsltArgumentList();
argsList.AddParam( "discount ", " ", ".15 ");
//Load the XSL stylsheet into the XslCompiledTransform object
transform.Load(xslPath);
transform.Transform(xpathDoc, argsList, Response.Output);
}
</script>
[解决办法]
错了,
<%@ Page Language= "C# " %>
<%@ Import Namespace= "System.Xml " %>
<%@ Import Namespace= "System.Xml.Xsl " %>
<%@ Import Namespace= "System.Xml.XPath " %>
<script runat= "server ">
void Page_Load(object sender, System.EventArgs e)
{
string xmlPath = Server.MapPath( "aboutus.xml ");
string xslPath = Server.MapPath( "aboutus.xsl ");
XPathDocument xpathDoc = new XPathDocument(xmlPath);
XmlReaderSettings settings = XmlReaderSettings(xslPath);
settings.ProhibitDtd = true;
XslCompiledTransform transform = new XslCompiledTransform();
XsltArgumentList argsList = new XsltArgumentList();
argsList.AddParam( "discount ", " ", ".15 ");
//Load the XSL stylsheet into the XslCompiledTransform object
transform.Load(settings);
transform.Transform(xpathDoc, argsList, Response.Output);
}
</script>