使用XslCompiledTransform转换两个xml文件

时间:2016-03-07 20:54:06

标签: c# .net xml xslt

我想要使用XslCompiledTransform转换两个xml文件。麻烦是我必须在一次转型中做到这一点。我正在使用第一个文件的.Transform方法,而另一个文件在xsl脚本中被引用。我需要的是html输出,其中包含来自两个xml文件的一些数据。我的代码是:

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();

我遇到以下异常:“加载document'file2.xml时发生错误”和InnerException:“出于安全原因,此XML文档中禁止使用DTD。要启用DTD处理,请将XmlReaderSettings上的DtdProcessing属性设置为Parse并传递设置到XmlReader.Create方法。“

那么,当.Exnsform方法使用XmlReader时,我如何做InnerExcetion告诉我要做的事情?或者还有其他方法可以实现这种转变吗?

1 个答案:

答案 0 :(得分:1)

使用XmlReader for file {xml XmlReaderSettings允许Dtds,我认为任何使用document函数加载的辅助XML文档都会加载相同的设置。