我想要使用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告诉我要做的事情?或者还有其他方法可以实现这种转变吗?
答案 0 :(得分:1)
使用XmlReader
for file {xml XmlReaderSettings
允许Dtds,我认为任何使用document
函数加载的辅助XML文档都会加载相同的设置。