2016-03-07 66 views
0

我有两个xml文件,我想使用XslCompiledTransform进行转换。麻烦是我必须在一次转换中做到这一点。我为第一个文件使用.Transform方法,而在xsl脚本中引用另一个文件。我所需要的是包含来自两个xml文件的一些数据的html输出。我的代码是:使用XslCompiledTransform转换两个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(); 

我捕获异常以下:和的InnerException“加载document'file2.xml出现的错误”:“出于安全原因的DTD此XML文档中禁止启用DTD处理设置DtdProcessing XmlReaderSettings属性解析并将设置传递给XmlReader.Create方法。“

那么我该怎么做InnerExcetion告诉我当XmlReader被.Transform方法使用时要做什么?或者还有其他办法可以实现这种转变吗?

回答

1

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

+0

谢谢你这样做...我实际上需要忽略DTD,因为我的文件没有任何。 – mmdfan