gpt4 book ai didi

xml - 能否在 XML 中保留前导和尾随空格?

转载 作者:数据小太阳 更新时间:2023-10-29 01:43:07 25 4
gpt4 key购买 nike

如何告诉 XML 解析器遵守前导和尾随空格?

Dim xml: Set xml = CreateObject("MSXML2.DOMDocument")
xml.async = False
xml.loadxml "<xml>1 2</xml>"
wscript.echo len(xml.documentelement.text)

上面打印出3.

Dim xml: Set xml = CreateObject("MSXML2.DOMDocument")
xml.async = False
xml.loadxml "<xml> 2</xml>"
wscript.echo len(xml.documentelement.text)

以上打印出 1。(我希望它打印出 2)。

我可以在 xml 文档本身中放置一些特殊的东西来告诉解析器在文档中保留前导和尾随空格吗?

澄清 1:是否存在可以在文档开头指定一次以应用于所有元素的属性?

澄清 2:因为实体的内容可能有 unicode 数据,但 xml 文件需要是纯 ascii,所以所有实体都经过编码——这意味着不幸的是 CDATA 不可用。

最佳答案

正如我所说,所有建议使用 xml:space="preserve" 的答案都是错误的

xml:space 属性只能用于控制仅空白节点的处理,即由完全组成的文本节点空白字符。

当前的问题完全不是这种情况。

事实上,下面提供的代码正确地为包含在以下内容中的文本节点获得了长度 2:

<xml> 2</xml>

这是正确获取文本节点长度的 VB 代码(不要忘记添加对“Microsoft XML,v 3.0”的引用):

Dim xml As MSXML2.DOMDocument
Private Sub Form_Load()
Set xml = CreateObject("MSXML2.DOMDocument")
xml.async = False
xml.loadxml "<xml> 2</xml>"
Dim n
n = Len(xml.documentelement.selectSingleNode("text()").nodeValue)
wscript.echo Len(n)
End Sub

如果在行上放置断点:

wscript.echo Len(n)

您会看到,当调试器在那里中断时,n 的值为 2,这是必需的。

因此,此代码是正在寻求的解决方案

关于xml - 能否在 XML 中保留前导和尾随空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/414631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com