应用XSLT样式表时DTD安全性错误

时间:2015-10-21 09:35:26

标签: c# xslt xslt-1.0 dtd

我得到了一个我目前无法解决的错误

代码:

var myXslTrans = new XslCompiledTransform();
myXslTrans.Load(stylesheet);
myXslTrans.Transform(sourceFile , outputFile);

错误:

  

出于安全原因,此XML文档中禁止使用DTC启用DTD   处理,在Parse DtdProcessing属性XmlReaderSettings上设置   并将参数传递给XmlReader.Create方法

我尝试过使用XmlReaderSettings(DtdProcessing,DtdProcessing.Parse),但我没有找到答案

1 个答案:

答案 0 :(得分:0)

如果样式表文档使用DTD(例如有<!DOCTYPE xsl:stylesheet ...>),则使用

加载它
using (XmlReader xr = XmlReader.Create(stylesheet, new XmlReaderSettings() { DtdProcessing = DtdProcessing.Parse }))
{
  myXslTrans.Load(xr);
}

如果sourceFile使用DTD然后加载它,并将XmlReader作为第一个参数传递给Transform方法,则可能需要为该第二个和第三个参数使用该方法的不同重载