DOM方式操作XML

在开发ajax或web service程序时,需要对xml格式的内容,进行处理,得到我们用户喜欢的一个结果。
PHP操作xml的方式非常之多,12种左右。
但是,我们只需要学习两种即可:
DOM方式:所有语言都支持的方式,并且是一样API,稍微难一点
SimpleXML方式:php提供一种简单的方式,非常简单。
1.什么是DOM
DOM :Document Object Model,文档对象模型
D:document,是指的文档本身,xml文档,HTML文档
O:Object,对象,是将元素、属性和文本等转成节点对象,对象有属性和方法,可以调用这些属性和方法完成相关的操作
M:Model,树模型,将Document转成一个树模型,节点,节点之间有关联。将这些节点转成对象。转换过程是在内存中进行的。
DOM操作XML步骤
简单来说,就只有三步:
DOM方式操作XML
注意事项
php利用DOM系列对象,完成上述操作。
在第一步中,我们只需提供哪个文档需要转换即可,其它的交给php来完成。
在第三步中,只需调用php的方法即可。
整个处理过程中,会用到4个对象,
DOM方式操作XML
先来看一下,DOMDocument对象
DOM方式操作XML
示例如下:
DOM方式操作XML
3.DOM操作原理解析
[需求]:对于bookstore.xml,将其以表格的形式显示到页面中,如图:
DOM方式操作XML首先,载入xml文档, 打印看结果
DOM方式操作XML
DOM方式操作XML
可以对比html中,如何来查找元素的?
DOM方式操作XML
可以使用该方法,获取title标签。
DOM方式操作XML
查看结果如下:
DOM方式操作XML
直接,找DOMNodeList类定义,
DOM方式操作XML
我们只需要使用item方法,传入下标即可。0表示第一个。
DOM方式操作XML
查看结果如下:
DOM方式操作XML
直接使用对象的属性,就可以输出书的名称了。
DOM方式操作XML
结果如下:
DOM方式操作XML
最终代码如下:
DOM方式操作XML
输出结果如下:
DOM方式操作XML
整个的处理过程中,比较麻烦的一点就是用了四个对象,这四个对象之间到底有何关联呢?
这里,我使用了一个工具,绘制uml图。
注意,DOMNodeList 和DOMNode的关系
DOM方式操作XML
DOMNodeList对象是由DOMNode对象组成的。在OOP中,称之为组成关系
四个对象的关系如图所示:
DOM方式操作XML
这里,就有一个抽象类,就是DOMNode。
在使用的过程中,并不会直接使用DOMNode对象,我们用的是DOMElement。

DOMNode其实指的节点,节点有分成三种:元素(DOMElement)、属性、文本。
我们一般只会使用DOMElement,不用属性和文本元素。