【问题标题】:Transforming two xml files with XslCompiledTransform使用 XslCompiledTransform 转换两个 xml 文件
【发布时间】: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 告诉我的操作?或者有没有其他方法可以实现这种转变?

【问题讨论】:

    标签: c# .net xml xslt


    【解决方案1】:

    对file1.xml 使用XmlReaderXmlReaderSettings 允许Dtds,我认为任何使用document 函数加载的辅助XML 文档都会加载相同的设置。

    【讨论】:

    • 谢谢你这样做了...我实际上需要忽略 DTD,因为我的文件没有。
    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多