目录
2、如何进行XML解析(PHP).................................................................................. 3
2)XML在内存中解析过程:.............................................................................. 4
3)PHP DOM三大关键词(“面”,“串”,“点”)................................................... 4
4)PHP解析XML四步走:................................................................................. 4
a)开辟内存空间,形成“面”............................................................................... 5
b)加载XML文件到内存,形成DOM树结构...................................................... 6
c)找到同级兄弟节点,形成“串”........................................................................ 6
d)获取同级兄弟节点并输出其值....................................................................... 7
节点更新操作六步走:..................................................................................... 13
1)属性的添加与更新操作................................................................................ 14
2)属性的判断与读取操作................................................................................ 15
作业一:PHP+XML编写CRM客户关系管理系统.............................................................. 17
三、PHP SimpleXML实现对XML的增删改查..................................................................... 17
1、载入XML文件到内存,并形成SimpleXML对象.................................................... 17
2、如何输入指定文本节点的值................................................................................ 18
3、如何遍历输出所有数据?................................................................................... 19
5、扩展案例:查询天气预报并给出相应的建议....................................................... 21
4、使用[]方括号进行条件查询................................................................................. 28
5、通过@符号进行属性查询.................................................................................... 28
一、PHP XML解析原理
1、为什么需要XML解析
2、如何进行XML解析(PHP)
PHP DOM模型进行XML解析(增加、修改、删除)
PHP SimpleXML(查询)
二、PHP DOM解析XML
1、PHP DOM模型
1)程序的运行机制:
无论任何程序(js、xml)在运行时,都要经历一下过程:
当我们通过浏览器向服务器端发送请求时,系统首先将要解析的语言加载到系统内存中,并在内存中运行于解析
2)XML在内存中解析过程:
说明:在DOM模型,模型分为两种:
标准的DOM模型(JavaScript)
非标准的DOM模型(PHP)
模型原理图:
3)PHP DOM三大关键词(“面”,“串”,“点”)
4)PHP解析XML四步走:
1、在内存中开辟存储空间——”面”
2、加载XML文件到内存,并形成DOM树结构
3、获取同级兄弟节点——“串”
4、获取指定的文本节点并读取其值——“点”
示例代码:
PHP+XML图书管理系统
1)设计数据库(XML)
a)创建data.xml作为我们的数据库
b)创建根节点library
c)创建book子节点,并存储图书标题、作者、价格
2)解析XML数据
a)开辟内存空间,形成“面”
要用到的知识点:
DOMDocument
参数说明:
$version:xml版本号,采用1.0
$encoding:编码格式,utf-8
运行效果如下:
b)加载XML文件到内存,形成DOM树结构
要用到的知识点:
参数说明:
$filename:要载入xml文件的名称
c)找到同级兄弟节点,形成“串”
要用到的知识点
DOMNodeList
参数说明:
$length:获取到当前串的长度,即根节点下有几个当前查找的标签
item(索引,默认从0开始):获取指定节点
getElementsByTagName()
参数说明:
$name:要获取元素(标签、标记)的名称
d)获取同级兄弟节点并输出其值
要用到的知识点:
参数说明:
$index:通过索引获取指定元素
运行结果:
通过观察运行结果,可知该数据返回的是DOMElement类型,而手册是采用DOMNode,为什么?
答:主要是由于DOMElement继承了DOMNode所以返回类型在手册上是采用DOMNode
输出结果如下:
2、PHP DOM查询与遍历
运行效果:
3、PHP DOM增加操作
增加四步走:
1)开辟面空间
2)载入xml到内存,形成DOM树
3)创建节点并追加
4)保存内存数据到XML文件中
要用到的知识点:
参数说明:
$name :创建的节点名称
$value :可选参数,创建节点的值
参数说明:
$newnode :追加的新节点名称(要求类型为DOMElement或DOMNode)
参数说明:
$filename:要保存的xml文件名称
示例代码:
运行效果:
4、PHP DOM删除操作
删除操作五步走:
1)开辟内存空间,形成“面”
2)载入xml文件到内存
3)找到要删除的节点
4)找到其父节点并移除其指定的子节点
5)保存内存数据到xml文件中
要用到的知识点:
参数说明:
$oldnode:要移出的节点
示例代码:
运行结果:
5、PHP DOM更新操作
在PHP DOM更新操作分为两种:
1)值操作,只更新某个节点的值信息(通过nodeValue属性设置即可)
2)节点操作,需要特定的函数辅助完成(通过replaceChild方法设置即可)
值更新操作四步走:
1)开辟内存空间,形成“面”
2)载入xml文件到内存,形成dom树
3)找到要更新的节点,更新其值
4)保存内存数据到XML文件中
示例代码:
运行结果:
节点更新操作六步走:
1)开辟内存空间,形成“面”
2)载入xml文件到内存
3)创建新节点
4)找到旧节点
5)找到父节点,然后用新节点替换老节点
6)保存内存数据到XML文件中
要用到的知识点:
参数说明:
$newnode:创建的新节点
$oldnode:要更新的旧节点
示例代码:
运行结果:
6、属性操作
1)属性的添加与更新操作
要用到的知识点:
在属性的添加与更新操作用到的是同一个方法setAttribute,当当前元素无属性时,系统会自动添加属性,如果已存在,则更新其值
参数说明:
$name:属性名称
$value:属性的值
示例代码:
运行效果:
2)属性的判断与读取操作
bool DOMElement::hasAttribute ( string $name ) :判断当前元素是否具有某一属性
bool DOMNode:: hasAttributes ( void ) :判断当前元素是否具有属性
string DOMElement::getAttribute( string $name ) :获取元素的属性
参数说明:
$name :属性名称
示例代码:
运行效果:
3)移除属性
要用到的知识点:
bool DOMElement::removeAttribute ( string $name )
参数说明:
$name:要移出的属性名称
示例代码:
运行结果:
作业一:PHP+XML编写CRM客户关系管理系统
1)要有后台登陆界面以及后台界面
2)数据库是采用xml文件存储的
config.xml :保存用户名与密码
3)可以进入后台,录入客户数据
4)通过列表也能查询到相关的用户数据