我正在使用Java和XML进行开发,想知道“元素”和“节点”的区别是什么?
我正在使用Java和XML进行开发,想知道“元素”和“节点”的区别是什么?
Node对象是整个DOM的主要数据类型。
一个节点可以是元素节点、属性节点、文本节点或其他在“节点类型”章节中解释的节点类型。
XML元素包括从(包括)元素的开始标记到(包括)元素的结束标记的所有内容。
不同的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具有以下节点类型:
回答你的问题 "元素和节点之间有什么区别" 是:
元素是节点类型之一。许多其他类型的节点存在并具有不同的目的。
节点是DOM树的一部分,元素是节点的一种特定类型
例如:<foo> 这是文本 </foo>
你有一个名为 foo 的元素(它也是一个节点,因为元素继承自节点),以及一个名为“这是文本”的文本节点,该文本节点是 foo 元素/节点的子级。
节点可以是许多不同类型的事物:一些文本、注释、元素、 实体等。 元素是一种特定类型的节点。
如各种XML 规范所述,一个元素
由开始标记、结束标记和两者之间的内容组成,或者是一个空元素标记(没有内容或结束标记)。换句话说,以下都是元素:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
尽管你会听到"node"被用来表示大致相同的含义,但它在XML规范中没有明确定义。通常用于指代DOM之类的节点,这些节点可能与XML密切相关或使用XML进行表示。
一个 XML 文档由嵌套的元素构成。一个元素从它的开始标签开始,到它的结束标签结束。你可能在 HTML 中看到过 <body>
和 </body>
。在开始和结束标签之间的所有内容都是该元素的内容。如果一个元素由自闭合标签定义(例如<br/>
),那么它的内容就为空。
开始标签还可以指定属性,例如:<p class="rant">
。在这个例子中,属性名称为"class",其值为"rant"。
XML 语言没有所谓的“节点”。请阅读规范,这个词没有出现。
有些人非正式地使用“节点”一词来表示元素,这很令人困惑,因为一些解析器也赋予了这个词技术含义(识别“文本节点”和“元素节点”)。确切的含义取决于解析器,因此该词没有明确定义,除非声明使用的解析器。如果你指的是元素,请说“元素”。
节点是元素和属性(以及基本上所有其他XML表示形式)的基类。
元素是唯一一种可以拥有子节点和属性的节点。
文档也有子节点,但是
没有属性,没有文本,只有一个子元素。
在文档中,有效、完整结构的最小单位。
或者:
树形视图中的一个对象,用作容器来保存相关对象。
现在有许多不同种类的节点,如元素节点、属性节点等。
现在我知道,元素是节点之一
这里有所有节点类型"http://www.w3schools.com/dom/dom_nodetype.asp"
元素位于开始标签和结束标签之间
因此文本节点是一个节点,但不是元素。