2

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

例如

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

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

或者 XML 源代码应该这样写:

<一些文本>
你好    世界
</some-text>

或者如果不是   比也许 ?

4

5 回答 5

5

听到人们甚至不看 XML 规范就实现 XML 处理器,这有点令人不安。

来自XML 1.0 规范,第 2.10 节空白处理”(强调我的):

在编辑 XML 文档时,使用“空白”(空格、制表符和空行)来分隔标记以提高可读性通常很方便。这种空白通常不打算包含在文档的交付版本中。另一方面,应该在交付版本中保留的“重要”空白很常见,例如在诗歌和源代码中。

XML 处理器必须始终将文档中未标记的所有字符传递给应用程序。验证 XML 处理器还必须通知应用程序这些字符中的哪些构成出现在元素内容中的空白。

一个名为 xml:space 的特殊属性可以附加到一个元素上,以表明在该元素中,应用程序应该保留空白。在有效文档中,如果使用此属性,则必须声明它,就像任何其他属性一样。声明时,它必须作为枚举类型给出,其值为“default”和“preserve”之一或两者。例如: ...

于 2009-01-16T11:09:07.830 回答
3

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

不过,要回答您的问题,我认为这很重要。即使是 HTML DOM 也将连续的空格视为重要的,只是它仅在视觉上呈现一个空格。它在 DOM 中的显示方式和在屏幕上的显示方式是完全不同的两件事。

于 2009-01-16T05:02:38.507 回答
2

编辑:标签中的空格被认为是重要的(我最初的想法是像 HTML 一样是错误的;先谷歌,稍后回答问题!)看这个解释

于 2009-01-16T04:47:52.547 回答
1

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

于 2009-01-16T04:50:50.903 回答
0

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

于 2009-01-17T02:47:11.567 回答