【发布时间】:2016-03-07 20:54:05
【问题描述】:
我有两个要使用 XslCompiledTransform 转换的 xml 文件。麻烦的是我必须在一次转换中做到这一点。我对第一个文件使用 .Transform 方法,而在 xsl 脚本中引用了另一个文件。因此,我需要的是包含来自两个 xml 文件的一些数据的 html 输出。我的代码是:
XsltSettings settings = new XsltSettings(true, true);
XslCompiledTransform myXslTransform = new XslCompiledTransform();
myXslTransform.Load(openFileDialog1.FileName, settings, new XmlUrlResolver());
string HTMLoutput;
StringWriter writer = new StringWriter();
myXslTransform.Transform("file1.xml", null, writer);
HTMLoutput = writer.ToString();
writer.Close();
我发现以下异常:“加载文档'file2.xml 时发生错误”和 InnerException:“出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 DtdProcessing 属性设置为 Parse 并传递设置到 XmlReader.Create 方法中。”
那么当 .Transform 方法使用 XmlReader 时,我该如何执行 InnerExcetion 告诉我的操作?或者有没有其他方法可以实现这种转变?
【问题讨论】: