节点列表 vs 节点 vs 元素

Nodelist vs Node vs Element

如果您有这样的 XML 文件

<Users>
  <student>
    <firstname> Chris </firstname>
    <lastname> Smith </lastname>
    <address> 1313 Mockingbird Lane </address>
    <phone> 555-1313 </phone>
  </student>
  <student>
    <firstname> John </firstname>
    <lastname> Doe </lastname>
    <address> 1526 Bluebird Way </address>
    <phone> 555-8324 </phone>
  </student>
</Users>

那么会...

  1. 用户是否被视为节点列表?
  2. 学生被视为元素或节点列表? student 标签包含更多标签,但它也是 Users 标签的子标签。那么这是一个元素还是节点列表?
  3. 值“John”是一个节点?

如果我弄错了其中一个,你能告诉我如何找出节点、元素和节点列表之间的区别吗?

您混合了一些松散定义的术语,在 XML.

的上下文中将一般概念与特定含义区分开很重要

在 XML 中,“元素”是 <tag>...</tag> 并且该定义可以递归地应用于嵌套标签(元素可以包含元素)。

NodeNodeList是一般概念。 Node 大致是一个具有某种内部状态的独特对象。名称 Node 暗示对象可以是或者是某个集合的成员,通常但不总是列表。

A NodeList 只是节点的线性列表。还有其他类型的集合可以包含节点,例如 MapGraphTree.

在你的例子中:

Users 是一个 XML 元素。它在概念上也是 XML 树中的一个节点。它包含student个元素所以它也是一个集合,并且由于元素是线性排列的所以它也是一个节点列表。

一个student是一个XML元素,在概念上它也是学生列表中的一个node

firstname 标签(以及其中的所有内容)也是一个 XML 元素和 XML 节点树中的一个节点。

John 不是 XML 定义的元素。它是 text node 包含在 firstname.