.Net中XmlDocumentFragment和XmlNode之间的差异

本文关键字:之间 XmlNode XmlDocumentFragment Net | 更新日期: 2023-09-27 18:01:11

我不明白XmlDocumentFragmentXmlNode之间的区别。

我知道第一个是第二个的派生类型。

为什么在代码中使用XmlDocumentFragment来创建或编辑XmlDocument的节点更好?

.Net中XmlDocumentFragment和XmlNode之间的差异

我在这里找到了答案:

DocumentFragment是一个"轻量级"或"最小"文档对象。它想要提取文档的一部分是非常常见的树或创建文档的新片段。想象一下实施用户命令,如通过移动碎片来剪切或重新排列文档围绕希望有一个可以容纳这样的物体片段,因此使用Node是非常自然的。虽然Document对象确实可以发挥这一作用Document对象可能是重量级对象,具体取决于底层实现。真正需要的是非常轻的物体。DocumentFragment就是这样一个对象。此外,还可以执行各种操作,例如将节点作为子节点插入另一个节点的——可以将DocumentFragment对象作为参数;这导致DocumentFragment的所有子节点已移动到此节点的子列表。一个孩子DocumentFragment节点是表示定义文档结构的任何子树。DocumentFragment节点不需要是格式良好的XML文档(尽管它们确实需要遵循强加在经过解析的格式良好的XML上的规则实体,其可以具有多个顶部节点(。例如DocumentFragment可能只有一个子节点,而该子节点可以是"文本"节点。这样的结构模型既不代表HTML文档或格式良好的XML文档。当DocumentFragment插入到文档中(或者实际上任何其他可能children(DocumentFragment的子级,而不是DocumentFragment本身插入到节点中。这使得DocumentFragment在用户希望创建是兄弟姐妹;DocumentFragment充当这些节点的父节点以便用户可以使用Node中的标准方法接口,如insertBefore((和appendChild((。