如何使用.NET Core 2.2执行XML转换?

时间:2019-01-05 23:43:27

标签: xslt-1.0 asp.net-core-2.0

我正在尝试转换此XML:

https://inergysystems.blob.core.windows.net/temp/XmlStuff/the-complexity-dilemma.xml

使用此XSLT转换文件。

https://inergysystems.blob.core.windows.net/temp/XmlStuff/JATS2HTML.xslt

以输出HTML。使用Liquid Studio 2018,我可以运行转换,并且生成的HTML符合预期(https://inergysystems.blob.core.windows.net/temp/XmlStuff/the-complexity-dilemma.html)。

我有数百个文件要转换,并且想使用.NET Core处理它们。我正在使用以下代码来转换原始XML:

var xslt = new XslCompiledTransform();
xslt.Load("JATS2HTML.xslt");
xslt.Transform("the-complexity-dilemma.xml", "the-complexity-dilemma.html");

当我尝试运行此脚本时,出现以下错误:

System.Xml.XmlException: Document does not have a root element.
at System.Xml.QueryOutputWriter.Close()
at System.Xml.XmlRawWriter.Close(WriteState currentState)
at System.Xml.XmlWellFormedWriter.Close()
at System.Xml.XmlWriter.Dispose(Boolean disposing)
at System.Xml.XmlWriter.Dispose()
at System.Xml.Xsl.XslCompiledTransform.Transform(String inputUri, String resultsFile)
at EcoWebsite.DocumentConversionHelper.ConvertXmlToHtml() in F:\....\DocumentConversionHelper.cs:line 18

关于为什么失败的任何想法?为了转换文件,是否需要存在DTD(journalpublishing3.dtd)?

0 个答案:

没有答案