加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

你可以用XML保留前导和尾随空格吗?

发布时间:2020-12-16 07:42:18 所属栏目:百科 来源:网络整理
导读:如何告诉 XML解析器来纪念领先和尾随的空格? Dim xml: Set xml = CreateObject("MSXML2.DOMDocument")xml.async = Falsexml.loadxml "xml1 2/xml"wscript.echo len(xml.documentelement.text) 以上打印出3. Dim xml: Set xml = CreateObject("MSXML2.DOMDoc
如何告诉 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:在文档开头有没有特定于ONCE的属性来应用于所有元素?

澄清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,因为它是必需的.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读