当前位置:  开发笔记 > Android > 正文

DOM splitText和normalize组合应该给出身份吗?

如何解决《DOMsplitText和normalize组合应该给出身份吗?》经验,为你挑选了0个好方法。

昨天我卷入了关于DOM实现怪癖的讨论,引发了一个关于Text.splitText和Element.normalise行为以及它们应该如何表现的有趣问题.

在DOM Level 1 Core中,Text.splitText被定义为......

将此Text节点分解为指定偏移量的两个Text节点,将两者保留在树中作为兄弟节点.然后,该节点仅包含直到偏移点的所有内容.并且作为此节点的下一个兄弟插入的新Text节点包含偏移点处和之后的所有内容.

标准化是......

将所有Text节点放在此Element下面的子树的完整深度中,形成"正常"形式,其中只有标记(例如,标记,注释,处理指令,CDATA部分和实体引用)将Text节点分开,即有没有相邻的Text节点.这可用于确保文档的DOM视图与保存和重新加载文档的DOM视图相同,并且在使用依赖于特定文档树结构的操作(例如XPointer查找)时非常有用.

所以,如果我采用一个包含"Hello World"的文本节点,在textNode中引用,并且执行

textNode.splitText(3)

textNode现在具有内容"Hello",以及包含"World"的新兄弟

如果我那么

textNode.parent.normalize()

什么是textNode?该规范没有明确表示textNode仍然是它的前一个父节点的子节点,只是更新为包含所有相邻的文本节点(然后被删除).它似乎是一个删除所有相邻文本节点的一个conforment行为,然后重新创建一个具有值的串联的新节点,使textNode指向不再是树的一部分的东西.或者,我们可以以与splitText相同的方式更新textNode,因此它保留了它的树位置,并获得了一个新值.

行为的选择实际上是完全不同的,我无法找到关于哪个是正确的澄清,或者这只是规范中的疏忽(它似乎在2级或3级似乎没有澄清).任何DOM/XML专家都可以解决这个问题吗?

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有