在DOM,一切XML文档中的一个节点。
DOM节点
根据DOM中,一切在XML文档中是一个node 。
DOM中说:
- 整个文档是文档节点
- 每个XML元素是元素节点
- 在XML元素的文本是文本节点
- 每个属性是属性节点
- 注释是注释节点
DOM实例
请看下面的XML文件( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的XML根节点被命名为<bookstore> 。 在文档中的所有其他节点都包含在<bookstore> 。
根节点<bookstore>包含了四个<book>节点。
第一个<book>节点包含了四个节点: <title>, <author>, <year>和<price> ,其中包含一个文本节点的每个, "Everyday Italian", "Giada De Laurentiis" , "2005"和"30.00"
文本是文本节点总是存储
在DOM处理一个常见的错误是期望包含文字元素节点。
然而,元素节点的文本存储在文本节点。
在这个例子中: <year>2005</year> ,元素节点<year> ,保存与价值文本节点"2005"
“2005”是not该值<year>元素!
该XML DOM节点树
该XML DOM将XML文档作为树结构。 树结构被称为node-tree.
所有节点都可以通过树进行访问。 它们的内容可以修改或删除,并且新的元素可以被创建。
节点树示出了节点集,和它们之间的连接。 树开始于根节点和流出到在树的最低层的文本节点分支:
上面的图片表示XML文件的Books.xml 。
节点父母,子女,兄弟姐妹和
在节点树中的节点必须彼此的层级关系。
术语父母,子女,兄弟姐妹和用于描述该关系。 父节点有孩子。 在同一水平上的孩子被称为兄弟姐妹(brothers or sisters) 。
- 在节点树中,顶节点被称为根
- 每个节点,除了根,有且只有一个父节点
- 一个节点可以有任意数量的子
- 叶是一个没有孩子的节点
- 兄弟姐妹都使用相同的父节点
下面的图像示出了节点树和节点之间的关系中的一部分:
因为XML数据以树形式的结构,它可以在不知道该树的确切结构和不知道包含于数据的类型来运行。
您将了解更多有关本教程的后面章节遍历节点树。
第一个孩子 - 最后一个孩子
请看下面的XML片段:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
在上面的XML中, <title>元素是的第一个孩子<book>元素和<price>元素是最后一个子<book>元素。
此外, <book>元素是的父节点<title>, <author>, <year> , and <price> elements. <title>, <author>, <year> , and <price> elements.