【发布时间】:2012-11-27 21:02:56
【问题描述】:
我正在尝试使用以下代码行进行一些 XSLT 转换,将 XML 转换为 XML。当我尝试从转换后的 XML 创建 XMLDocument 对象时,出现错误
根级别的数据无效。第 1 行,位置 1。
Dim outputXML As New XmlDocument
Dim stream As New MemoryStream
Dim writer As XmlTextWriter = New XmlTextWriter(stream, System.Text.UnicodeEncoding.UTF8)
Dim navigator As XPathNavigator = illustratePlusXML.CreateNavigator()
Dim transormer As XslCompiledTransform = New XslCompiledTransform()
transormer.Load(ConfigurationManager.AppSettings("XSLT_File_Path"))
transormer.Transform(navigator, Nothing, writer)
Dim output As String = System.Text.UnicodeEncoding.UTF8.GetString(stream.ToArray())
outputXML.LoadXml(output)
Return outputXML
我可以找到一个特殊字符(方形框),我认为这是导致错误的原因。附加的输出 xml 的快照。有人可以建议吗?
【问题讨论】:
-
如果你使用(XslCompiledTransform 的默认)utf-16 编码,我想你不会有这些问题。
-
您是否尝试过在不指定编码的情况下打开 XmlTextWriter?
-
@DimitreNovaatchev 我的 XMl 使用的是 UTF-8 编码,我还应该尝试默认编码吗?
-
@Anoop,我认为您根本不需要使用 MemoryStream。当从文件中读取字符时,它们会被转换为 .NET,并且任何 .NET 字符都是 UTF-16 格式——因此,这是自动为您完成的,除此之外您无需关心和执行任何操作。
-
@DimitreNovaatchev 感谢您的帮助。是的,使用 Martin 给出的代码
标签: vb.net xslt xmldocument