在我的工作中,我们有自己的XML类来构建DOM,但我不确定应该如何处理连续的空格?
e.g。
<some-text>
Hello World
</some-text>
当读入DOM时,文本节点是否应该在Hello和World之间包含连续的空格,或者只是将其缩小到一个空格?
或者XML源是否应该像这样编写:
<some-text> Hello World </some-text>
或者如果没有&amp; nbsp;或许&amp;#32; ?
答案 0 :(得分:5)
听到有人在没有查看XML规范的情况下实现XML处理器,这有点令人不安。
来自XML 1.0 specification, section 2.10 White Space Handling"(强调我的):
在编辑XML文档时,经常会这样做 方便使用“白色空间” (空格,制表符和空行)设置 除了更大的标记 可读性。这样的白色空间是 通常不打算包含在内 在交付版本中 文献。另一方面, “显着”的白色空间应该 保存在交付版本中 很常见,例如在诗歌和诗歌中 源代码。
XML处理器必须始终通过所有 文档中没有的字符 标记到应用程序。 A. 验证XML处理器也必须 通知申请中的哪一个 人物构成白色空间 出现在元素内容中。
一个名为xml:space的特殊属性 可以附加到元素 发出信号的意图 元素,白色空间应该是 由应用程序保存。有效 文件,这个属性,像任何一样 另外,如果使用它必须声明。 声明时,它必须作为一个 枚举类型,其值为1 或“默认”和“保留”两者。 例如:......
答案 1 :(得分:3)
是一个HTML实体,与XML本身无关。
要回答你的问题,我会认为这很重要。甚至HTML DOM也将连续空间视为重要空间,只是它只能在视觉上呈现一个空间。它在DOM中的显示方式以及它在屏幕上的显示方式完全不同。
答案 2 :(得分:2)
编辑:标签内的空白被认为是重要的(我最初的想法就像HTML一样错误;先谷歌,稍后回答问题!)见this explanation
答案 3 :(得分:1)
在这种情况下,将空白视为重要的IMO似乎很自然。我希望DOM节点的值等于我在标记中使用的值。
答案 4 :(得分:0)
如果你“拥有我们自己的XML类”,那么编写它们的人还不知道这个问题的答案,你可能还有很多很多很多你还没有发现的问题。