XML读取器是否应忽略XML文件中的连续空格?

时间:2009-01-16 04:44:50

标签: xml xmldom

在我的工作中,我们有自己的XML类来构建DOM,但我不确定应该如何处理连续的空格?

e.g。

<some-text>
Hello     World
</some-text>

当读入DOM时,文本节点是否应该在Hello和World之间包含连续的空格,或者只是将其缩小到一个空格?

或者XML源是否应该像这样编写:

<some-text>
Hello &nbsp;&nbsp;&nbsp;&nbsp;World
</some-text>

或者如果没有&amp; nbsp;或许&amp;#32; ?

5 个答案:

答案 0 :(得分:5)

听到有人在没有查看XML规范的情况下实现XML处理器,这有点令人不安。

来自XML 1.0 specification, section 2.10 White Space Handling"(强调我的):

  

在编辑XML文档时,经常会这样做   方便使用“白色空间”   (空格,制表符和空行)设置   除了更大的标记   可读性。这样的白色空间是   通常不打算包含在内   在交付版本中   文献。另一方面,   “显着”的白色空间应该   保存在交付版本中   很常见,例如在诗歌和诗歌中   源代码。

     

XML处理器必须始终通过所有   文档中没有的字符   标记到应用程序。 A.   验证XML处理器也必须   通知申请中的哪一个   人物构成白色空间   出现在元素内容中。

     

一个名为xml:space的特殊属性   可以附加到元素   发出信号的意图   元素,白色空间应该是   由应用程序保存。有效   文件,这个属性,像任何一样   另外,如果使用它必须声明。   声明时,它必须作为一个   枚举类型,其值为1   或“默认”和“保留”两者。   例如:......

答案 1 :(得分:3)

&nbsp;是一个HTML实体,与XML本身无关。

要回答你的问题,我会认为这很重要。甚至HTML DOM也将连续空间视为重要空间,只是它只能在视觉上呈现一个空间。它在DOM中的显示方式以及它在屏幕上的显示方式完全不同。

答案 2 :(得分:2)

编辑:标签内的空白被认为是重要的(我最初的想法就像HTML一样错误;先谷歌,稍后回答问题!)见this explanation

答案 3 :(得分:1)

在这种情况下,将空白视为重要的IMO似乎很自然。我希望DOM节点的值等于我在标记中使用的值。

答案 4 :(得分:0)

如果你“拥有我们自己的XML类”,那么编写它们的人还不知道这个问题的答案,你可能还有很多很多很多你还没有发现的问题。