如果你有一个这样的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>
然后会...
- 用户被视为节点列表?
- 学生被视为元素还是节点列表?学生标签包含更多标签,但它也是标签用户的子级。那么这是一个元素还是节点列表?
- 值"约翰"是一个节点?
如果我弄错了其中之一,您能告诉我如何找出节点、元素和节点列表之间的区别吗?
您正在混合一些定义松散的术语,在 XML 上下文中将一般概念与特定含义分开非常重要。
在XML中,"元素"是一个<tag>...</tag>
,该定义可以递归地应用于嵌套标记(元素可以包含元素)。
Node
和NodeList
是一般概念。 大致而言,Node
是一个具有某种内部状态的独特对象。名称Node
意味着对象可以是某个集合的成员,通常是列表,但并不总是列表。
NodeList
只是节点的线性列表。还有其他类型的集合可以包含节点,例如Map
、Graph
或Tree
。
在您的示例中:
Users
是一个 XML 元素。从概念上讲,它也是 XML 树中的一个节点。 它包含student
元素,因此它也是一个集合,并且由于元素是线性排列的,因此它也是一个节点列表。
student
是一个 XML 元素,从概念上讲,它也是学生列表中的node
。
firstname
标记(以及其中的所有内容)也是 XML 元素和节点的 XML 树中的节点。
值John
不是 XML 定义的元素。这是包含在firstname
中的text node
。