Vb6 MSXML2.DOMDocument.xml提供格式不正确的xml

Vb6 MSXML2.DOMDocument.xml提供格式不正确的xml,vb6,domdocument,ixmldomelement,Vb6,Domdocument,Ixmldomelement,我们有一个旧的遗留系统,其中一个组件是VB6中的writer。一个方法返回一个xml数据字符串。xml数据是使用msxml3.dll MSXML2.DOMDocument创建的,并返回具有属性xml的文档数据: 但是,xmldocument的一些数据来自数据库,其中一个字段是哈希密码字符串。为元素设置数据的代码: Set cellNode = rowNode.appendChild(xml.createElement("COL")) If IsNu

我们有一个旧的遗留系统,其中一个组件是VB6中的writer。一个方法返回一个xml数据字符串。xml数据是使用msxml3.dll MSXML2.DOMDocument创建的,并返回具有属性
xml
的文档数据:

但是,xmldocument的一些数据来自数据库,其中一个字段是哈希密码字符串。为元素设置数据的代码:

            Set cellNode = rowNode.appendChild(xml.createElement("COL"))
            If IsNull(rs(oField.name).Value) Then
                cellNode.Text = ""
            Else
                cellNode.Text = rs(oField.name).Value
            End If
这给了我格式不正确/格式不正确的xml:

<ROWS><ROW><COL>r<í</COL></ROW></ROWS>

r您应该转义unicode字符。或者将它们放在CDATA标签中(虽然这不是一个很好的解决方案)

顺便说一下,<>和&也应该转义。

您应该转义unicode字符。或者将它们放在CDATA标签中(虽然这不是一个很好的解决方案)
顺便说一句<>和&也应该转义。

好奇。通过IE
ActiveXObject
,使用
MSXML2.DOMDocument.3.0
我没有得到相同的行为。可能是因为它在VB6中,无法正确处理unicode?VB6有,但不应该有任何问题。VB6字符串在内部是Unicode的,当您通过COM调用MSXML2时,字符串将保持Unicode格式。如果您尝试将
cellNode.Text
设置为包含
的其他字符串,会发生什么情况?我尝试了cellNode.nodeValue和cellNode.appendChild(xml.createCDataSection(rs(oField.name.Value))(但在这种情况下,输出在alla中不包含任何cdata节),但似乎没有任何效果。我相信,如果我使用xml.Save()保存到一个文件中,但还没有测试它,那么它可以正常工作。目前已将其移植到.net,在那里一切正常。好奇。通过IE
ActiveXObject
,使用
MSXML2.DOMDocument.3.0
我没有得到相同的行为。可能是因为它在VB6中,无法正确处理unicode?VB6有,但不应该有任何问题。VB6字符串在内部是Unicode的,当您通过COM调用MSXML2时,字符串将保持Unicode格式。如果您尝试将
cellNode.Text
设置为包含
的其他字符串,会发生什么情况?我尝试了cellNode.nodeValue和cellNode.appendChild(xml.createCDataSection(rs(oField.name.Value))(但在这种情况下,输出在alla中不包含任何cdata节),但似乎没有任何效果。我相信,如果我使用xml.Save()保存到一个文件中,但还没有测试它,那么它可以正常工作。目前已将其移植到.net,在那里一切正常。