所以我有 XSLT 代码(它是正确的,它是单独测试的)并且我把它硬编码为一个字符串(这是一个要求,不要问)。加载 XML、XSLT 和所有这些东西都可以。
但是当我使用 XmlDocument 作为第一个参数时,XmlCompiledTransform.Transform()
我得到了关于White space handling
.
然后我使用 XmlReader 作为第一个参数,这有效,但是当我尝试保存转换后的文件时出现异常,异常是Invalid XML document. The document does not have a root element.
这是代码:
Dim xsltTransformerCode As New xsltTransformCode()
Dim myXmlDoc As New XmlDocument()
Dim resultXmlDoc As New XmlDocument()
Dim sr As New StringReader(xsltTransformerCode.transformationXSLTcode())
Dim xr As XmlReader = XmlReader.Create(sr)
Dim xsltTransCompiled As New XslCompiledTransform()
'write the stringified xslt code to file, in order to check its validity manually'
File.WriteAllText("C:\Users\gk\Desktop\tempXSLTcode.xsl", xsltTransformerCode.transformationXSLTcode())
'load the xml string taken from the database'
myXmlDoc.Load("C:\Users\gk\Desktop\XTilbud.xml")
'load the stylesheet'
xsltTransCompiled.Load(xr)
Using xw As XmlWriter = resultXmlDoc.CreateNavigator().AppendChild()
xsltTransCompiled.Transform(myXmlDoc, Nothing, xw)
xw.Close()
End Using
resultXmlDoc.Save("C:\Users\gk\Desktop\myXMLfile.xml")
sr.Dispose()
sr.Close()
xr.Close()
PS我想转换原始文档并将其值传递给另一个xmlDocument并保存它。(或者如果我可以转换并保存同一个对象,那没关系。我愿意接受建议)。
所以我需要以某种方式获取阅读器的价值并将其保存为 XML 文档或类似的东西,我不确定......