【问题标题】:Why are Nodes and Elements different in XML? What was the rationale? [duplicate]为什么 XML 中的节点和元素不同?理由是什么? [复制]
【发布时间】:2011-01-12 13:10:09
【问题描述】:

一段时间以来,我一直在编写操作 XML 的代码,我一直想知道同时具有节点和元素的原因是什么? (我们知道what the differences are)。它们都代表标签(或多或少)并且具有不同的方法,只是使代码复杂。

是否有任何特殊的语义或实际原因,或者仅仅是 DOM 规范是委员会制定的事实?

【问题讨论】:

  • 这不是重复的。我怀疑关闭此项目的人没有阅读该问题。标题是重复的,内容不是。简而言之,他问的是为什么节点和元素的想法作为不同的事物存在,而不是有什么区别。

标签: xml dom


【解决方案1】:

Node 是 Element 的基类 - Xml 文档中的几乎所有内容都是 Node,例如:

<!ENTITY...>
<xml a="myAttribute">
    SomeText
    <!-- A comment -->
</xml>

在上面的例子中:

  • &lt;!ENTITY...&gt; 是一个实体
  • &lt;xml ... 是一个元素
  • a="myAttribute" 是一个属性
  • SomeText 是一个文本节点
  • &lt;!-- A comment --&gt; 是评论

以上都继承自Node,其实上例中myAttribute也是一个文本节点。

【讨论】:

    【解决方案2】:

    它们并不都代表标签。元素表示以开始标签开始并以结束标签结束的节点。元素是节点,但节点不一定是元素。例如节点可以是:

    • 元素
    • 文本数据
    • 评论

    【讨论】:

      【解决方案3】:

      请看What's the difference between an element and a node in XML? 之前有人问过类似的问题。

      总结: 元素是一种特定类型的节点。节点也可以是属性节点、文本节点、评论节点等。

      【讨论】:

        【解决方案4】:

        节点比元素更通用。查看this page 了解节点可以代表的所有不同“事物”。元素只是其中一种可能性,它对应于标签。需要强调的是,节点通常不代表 XML 标记。

        例如,&lt;a&gt;blah&lt;/a&gt; 包含两个节点。第一个是代表&lt;a&gt; 标签的“元素”,第二个是包含“blah”的文本节点。

        【讨论】:

          猜你喜欢
          • 2010-09-13
          • 2013-07-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-24
          • 1970-01-01
          • 1970-01-01
          • 2021-11-16
          相关资源
          最近更新 更多