392

我正在使用 XML 使用 Java,我想知道;元素和节点有什么区别?

4

13 回答 13

279

Node 对象是整个 DOM 的主要数据类型。

节点可以是元素节点、属性节点、文本节点或“节点类型”一章中解释的任何其他节点类型。

XML 元素是从(包括)元素的开始标记到(包括)元素的结束标记的所有内容。

于 2008-09-25T10:52:44.237 回答
70

不同的 W3C 规范定义了不同的“节点”类型集。

因此,DOM 规范定义了以下类型的节点:

  • Document-- Element(最多一个), ProcessingInstruction, Comment,DocumentType
  • DocumentFragment -- Element, ProcessingInstruction, Comment, Text, CDATASection,EntityReference
  • DocumentType- 没有小孩
  • EntityReference -- Element, ProcessingInstruction, Comment, Text, CDATASection,EntityReference
  • Element-- Element, Text, Comment, ProcessingInstruction, CDATASection,EntityReference
  • Attr-- Text,EntityReference
  • ProcessingInstruction - 没有小孩
  • Comment- 没有小孩
  • Text- 没有小孩
  • CDATASection- 没有小孩
  • Entity-- Element, ProcessingInstruction, Comment, Text, CDATASection,EntityReference
  • Notation- 没有小孩

XML Infoset(由 XPath 使用)有一组较小的节点:

  • 文档信息项
  • 元素信息项
  • 属性信息项
  • 处理指令信息项
  • 未扩展的实体参考信息项
  • 字符信息项
  • 评论信息项
  • 文件类型声明信息项
  • 未解析的实体信息项
  • 符号信息项
  • 命名空间信息项
  • XPath 具有以下节点类型:

    • 根节点
    • 元素节点
    • 文本节点
    • 属性节点
    • 命名空间节点
    • 处理指令节点
    • 评论节点

    您的问题元素和节点之间有什么区别”的答案是:

    An element is a type of node. Many other types of nodes exist and serve different purposes.

    于 2008-11-18T03:57:15.193 回答
    39

    Node 是 DOM 树的一部分,Element 是 Node 的一种特殊类型

    例如 <foo> This is Text </foo>

    您有一个 foo 元素(它也是一个节点,因为 Element 继承自 Node)和一个文本节点“这是文本”,它是 foo 元素/节点的子节点

    于 2008-09-25T10:51:21.633 回答
    27

    一个节点可以是许多不同种类的东西:一些文本、评论、元素、实体等。元素是一种特定类型的节点。

    于 2008-09-25T10:51:32.647 回答
    16

    如各种 XML规范中所述,anelement是由开始标记和结束标记以及其间的内容或空元素标记(没有内容或结束标记)组成的标记。换句话说,这些都是元素:

    <foo> stuff </foo>
    <foo bar="baz"></foo>
    <foo baz="qux" />
    

    尽管您听到“节点”的含义大致相同,但它并没有根据 XML 规范进行精确定义。它通常用于指代诸如 DOM 之类的事物的节点,这些节点可能与 XML 密切相关,或者使用 XML 来表示它们。

    于 2008-09-25T11:07:16.167 回答
    11

    xml 文档由嵌套元素组成。一个元素从它的开始标签开始,到它的结束标签结束。您可能已经在 html 中看到<body>过。</body>开始标签和结束标签之间的所有内容都是元素的内容。如果一个元素是由一个自闭合标签(例如<br/>)定义的,那么它的内容是空的。

    打开标签也可以指定属性,例如。<p class="rant">. 在此示例中,属性名称为“class”,其值为“rant”。

    XML 语言没有“节点”之类的东西阅读规范,这个词不会出现。

    有些人非正式地使用“节点”这个词来表示元素,这令人困惑,因为一些解析器还赋予这个词一个技术含义(识别“文本节点”和“元素节点”)。确切的含义取决于解析器,因此除非您说明正在使用的解析器,否则该词的定义不明确。如果您的意思是元素,请说 'element'

    于 2013-04-03T16:16:50.700 回答
    9

    节点是元素和属性(基本上也是所有其他 XML 表示)的基类。

    于 2008-09-25T10:50:52.367 回答
    8

    元素是唯一可以具有子节点和属性的节点。

    文档也有子节点,但
    没有属性,没有文本,只有一个子元素。

    于 2008-09-25T11:15:29.360 回答
    2

    一个节点定义为:

    文档中有效、完整结构的最小单位。

    或作为:

    树视图中的对象,用作保存相关对象的容器。

    现在它们有许多不同类型的节点,如元素节点、属性节点等。

    于 2015-03-09T23:31:46.353 回答
    1

    现在我知道,元素是节点之一

    这里的所有节点类型“ http://www.w3schools.com/dom/dom_nodetype.asp

    元素在开始标签和结束标签之间

    所以文本节点是一个节点,而不是一个元素。

    于 2010-02-26T06:05:19.393 回答
    0

    元素是一种节点,属性、文本等也是如此。

    于 2008-09-25T10:51:47.390 回答
    -3

    XML 元素是一个 XML 节点,但具有其他元素,例如属性。

    <a>Lorem Ipsum</a>  //This is a node
    
    <a id="sample">Lorem Ipsum</a>  //This is an element
    
    于 2016-09-02T05:51:39.423 回答
    -7

    节点和元素相同。每个元素都是一个节点,但并不是每个节点都必须是一个元素。

    于 2014-07-23T10:27:17.813 回答