我正在使用 XML 使用 Java,我想知道;元素和节点有什么区别?
Node 对象是整个 DOM 的主要数据类型。
节点可以是元素节点、属性节点、文本节点或“节点类型”一章中解释的任何其他节点类型。
XML 元素是从(包括)元素的开始标记到(包括)元素的结束标记的所有内容。
不同的 W3C 规范定义了不同的“节点”类型集。
因此,DOM spec 定义了以下类型的节点:
Document -- 元素(最多一个)、ProcessingInstruction、Comment、DocumentType
DocumentFragment -- 元素、处理指令、注释、文本、CDATASection、EntityReference
DocumentType -- 没有孩子
EntityReference -- 元素、ProcessingInstruction、注释、文本、CDATASection、EntityReference
元素 -- 元素、文本、注释、处理指令、CDATASection、EntityReference
Attr -- 文本、实体引用
处理指令——没有孩子
评论——没有孩子
文本 - 没有孩子
CDATASection——没有孩子
实体 -- 元素、处理指令、注释、文本、CDATASection、EntityReference
符号 - 没有孩子
XML Infoset(由 XPath 使用)有一组较小的节点:
文档信息项
元素信息项
属性信息项
处理指令信息项
未扩展的实体参考信息项
字符信息项
评论信息项
文件类型声明信息项
未解析的实体信息项
符号信息项
命名空间信息项
XPath 具有以下节点类型:
根节点
元素节点
文本节点
属性节点
命名空间节点
处理指令节点
评论节点
您的问题“元素和节点有什么区别”的答案是:
An element is a type of node. Many other types of nodes exist and serve different purposes.
Node 是 DOM 树的一部分,Element 是 Node 的一种特殊类型
例如<foo> This is Text </foo>
您有一个 foo 元素(它也是一个节点,因为 Element 继承自 Node)和一个文本节点“这是文本”,它是 foo 元素/节点的子节点
一个节点可以是许多不同种类的东西:一些文本、评论、元素、实体等。元素是一种特定类型的节点。
如各种 XML specifications 中所述,element
是由开始标记和结束标记以及两者之间的内容组成的,或者是一个空元素标记(没有内容或结束标记)。换句话说,这些都是元素:
<foo> stuff </foo>
<foo bar="baz"></foo>
<foo baz="qux" />
尽管您听到“节点”的含义大致相同,但它并没有根据 XML 规范进行精确定义。它通常用于指代诸如 DOM 之类的事物的节点,这些节点可能与 XML 密切相关,或者使用 XML 来表示它们。
xml 文档由嵌套元素组成。一个元素从它的开始标签开始,到它的结束标签结束。您可能会在 html 中看到 <body>
和 </body>
。开始标签和结束标签之间的所有内容都是元素的内容。如果一个元素由一个自闭合标签(例如 <br/>
)定义,那么它的内容是空的。
打开标签也可以指定属性,例如。 <p class="rant">
。在此示例中,属性 name 为“类”,其 值为“rant”。
XML 语言没有“节点”之类的东西。 Read the spec,这个词没有出现。
有些人非正式地使用“节点”这个词来表示元素,这令人困惑,因为一些解析器还赋予这个词一个技术含义(识别“文本节点”和“元素节点”)。确切的含义取决于解析器,因此除非您说明正在使用的解析器,否则该词的定义不明确。如果您的意思是元素,请说“元素”。
节点是元素和属性(基本上也是所有其他 XML 表示)的基类。
元素是唯一可以具有子节点和属性的节点。
文档也有子节点,但没有属性,没有文本,只有一个子元素。
现在我知道,元素是节点之一
此处的所有节点类型“http://www.w3schools.com/dom/dom_nodetype.asp”
元素在开始标签和结束标签之间
所以文本节点是一个节点,而不是一个元素。
元素是一种节点,属性、文本等也是如此。
XML 元素是一个 XML 节点,但具有其他元素,例如属性。
<a>Lorem Ipsum</a> //This is a node
<a id="sample">Lorem Ipsum</a> //This is an element
节点和元素相同。每个元素都是一个节点,但并不是每个节点都必须是一个元素。