山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

image

image

万能的数据传输格式XML

目录

万能的数据传输格式XML下............................................................................................. 1

一、PHP XML解析原理..................................................................................................... 3

1、为什么需要XML解析........................................................................................... 3

2、如何进行XML解析(PHP).................................................................................. 3

二、PHP DOM解析XML.................................................................................................... 3

1、PHP DOM模型...................................................................................................... 3

1)程序的运行机制:......................................................................................... 3

2)XML在内存中解析过程:.............................................................................. 4

3)PHP DOM三大关键词(“面”,“串”,“点”)................................................... 4

4)PHP解析XML四步走:................................................................................. 4

a)开辟内存空间,形成“面”............................................................................... 5

b)加载XML文件到内存,形成DOM树结构...................................................... 6

c)找到同级兄弟节点,形成“串”........................................................................ 6

d)获取同级兄弟节点并输出其值....................................................................... 7

2、PHP DOM查询与遍历........................................................................................... 8

3、PHP DOM增加操作............................................................................................... 9

4、PHP DOM删除操作............................................................................................. 11

5、PHP DOM更新操作............................................................................................. 12

值更新操作四步走:......................................................................................... 12

节点更新操作六步走:..................................................................................... 13

6、属性操作............................................................................................................ 14

1)属性的添加与更新操作................................................................................ 14

2)属性的判断与读取操作................................................................................ 15

3)移除属性..................................................................................................... 16

作业一:PHP+XML编写CRM客户关系管理系统.............................................................. 17

三、PHP SimpleXML实现对XML的增删改查..................................................................... 17

1、载入XML文件到内存,并形成SimpleXML对象.................................................... 17

2、如何输入指定文本节点的值................................................................................ 18

3、如何遍历输出所有数据?................................................................................... 19

4、如何输出属性?................................................................................................. 20

5、扩展案例:查询天气预报并给出相应的建议....................................................... 21

6、simplexml添加节点............................................................................................. 22

7、simplexml修改与删除操作.................................................................................. 23

四、Xpath....................................................................................................................... 24

1、使用绝对路径查询数据....................................................................................... 24

2、使用相对路径查询数据....................................................................................... 26

3、通过星号*查询所有数据..................................................................................... 27

4、使用[]方括号进行条件查询................................................................................. 28

5、通过@符号进行属性查询.................................................................................... 28

6、扩充xpath中的[]条件查询.................................................................................. 29

五、案例:在线词霸....................................................................................................... 30

1、界面设计............................................................................................................ 30

2、设计数据库........................................................................................................ 30

3、后台系统设计..................................................................................................... 31

4、前台功能实现:................................................................................................. 31

作业二:在线词霸.......................................................................................................... 32

一、PHP XML解析原理

1、为什么需要XML解析

clip_image002

2、如何进行XML解析(PHP)

PHP DOM模型进行XML解析(增加、修改、删除)

PHP SimpleXML(查询)

二、PHP DOM解析XML

1、PHP DOM模型

1)程序的运行机制:

无论任何程序(js、xml)在运行时,都要经历一下过程:

当我们通过浏览器向服务器端发送请求时,系统首先将要解析的语言加载到系统内存中,并在内存中运行于解析

2)XML在内存中解析过程:

说明:在DOM模型,模型分为两种:

标准的DOM模型(JavaScript)

非标准的DOM模型(PHP)

模型原理图:

clip_image004

3)PHP DOM三大关键词(“面”,“串”,“点”)

clip_image006

4)PHP解析XML四步走:

1、在内存中开辟存储空间——”面”

2、加载XML文件到内存,并形成DOM树结构

3、获取同级兄弟节点——“串”

4、获取指定的文本节点并读取其值——“点”

示例代码:

PHP+XML图书管理系统

1)设计数据库(XML)

a)创建data.xml作为我们的数据库

b)创建根节点library

c)创建book子节点,并存储图书标题、作者、价格

clip_image008

2)解析XML数据

a)开辟内存空间,形成“面”

要用到的知识点:

DOMDocument

clip_image010

参数说明:

$version:xml版本号,采用1.0

$encoding:编码格式,utf-8

clip_image012

运行效果如下:

clip_image014

b)加载XML文件到内存,形成DOM树结构

要用到的知识点:

clip_image016

参数说明:

$filename:要载入xml文件的名称

clip_image018

c)找到同级兄弟节点,形成“串”

要用到的知识点

DOMNodeList

clip_image020

参数说明:

$length:获取到当前串的长度,即根节点下有几个当前查找的标签

item(索引,默认从0开始):获取指定节点

getElementsByTagName()

clip_image022

参数说明:

$name:要获取元素(标签、标记)的名称

clip_image024

clip_image026

d)获取同级兄弟节点并输出其值

要用到的知识点:

clip_image028

参数说明:

$index:通过索引获取指定元素

clip_image030

运行结果:

clip_image032

通过观察运行结果,可知该数据返回的是DOMElement类型,而手册是采用DOMNode,为什么?

答:主要是由于DOMElement继承了DOMNode所以返回类型在手册上是采用DOMNode

clip_image034

clip_image036

输出结果如下:

clip_image038

2、PHP DOM查询与遍历

clip_image040

运行效果:

clip_image042

3、PHP DOM增加操作

增加四步走:

1)开辟面空间

2)载入xml到内存,形成DOM树

3)创建节点并追加

4)保存内存数据到XML文件中

要用到的知识点:

clip_image044

参数说明:

$name :创建的节点名称

$value :可选参数,创建节点的值

clip_image046

参数说明:

$newnode :追加的新节点名称(要求类型为DOMElement或DOMNode)

clip_image048

参数说明:

$filename:要保存的xml文件名称

示例代码:

clip_image050

运行效果:

clip_image052

4、PHP DOM删除操作

删除操作五步走:

1)开辟内存空间,形成“面”

2)载入xml文件到内存

3)找到要删除的节点

4)找到其父节点并移除其指定的子节点

5)保存内存数据到xml文件中

要用到的知识点:

clip_image054

参数说明:

$oldnode:要移出的节点

示例代码:

clip_image056

运行结果:

clip_image058

5、PHP DOM更新操作

在PHP DOM更新操作分为两种:

1)值操作,只更新某个节点的值信息(通过nodeValue属性设置即可)

2)节点操作,需要特定的函数辅助完成(通过replaceChild方法设置即可)

值更新操作四步走:

1)开辟内存空间,形成“面”

2)载入xml文件到内存,形成dom树

3)找到要更新的节点,更新其值

4)保存内存数据到XML文件中

示例代码:

clip_image060

运行结果:

clip_image062

节点更新操作六步走:

1)开辟内存空间,形成“面”

2)载入xml文件到内存

3)创建新节点

4)找到旧节点

5)找到父节点,然后用新节点替换老节点

6)保存内存数据到XML文件中

要用到的知识点:

clip_image064

参数说明:

$newnode:创建的新节点

$oldnode:要更新的旧节点

示例代码:

clip_image066

运行结果:

clip_image068

6、属性操作

1)属性的添加与更新操作

要用到的知识点:

clip_image070

在属性的添加与更新操作用到的是同一个方法setAttribute,当当前元素无属性时,系统会自动添加属性,如果已存在,则更新其值

参数说明:

$name:属性名称

$value:属性的值

示例代码:

clip_image072

运行效果:

clip_image074

2)属性的判断与读取操作

bool DOMElement::hasAttribute ( string $name ) :判断当前元素是否具有某一属性

bool DOMNode:: hasAttributes ( void ) :判断当前元素是否具有属性

string DOMElement::getAttribute( string $name ) :获取元素的属性

参数说明:

$name :属性名称

示例代码:

clip_image076

运行效果:

clip_image078

3)移除属性

要用到的知识点:

bool DOMElement::removeAttribute ( string $name )

参数说明:

$name:要移出的属性名称

示例代码:

clip_image080

运行结果:

clip_image082

作业一:PHP+XML编写CRM客户关系管理系统

1)要有后台登陆界面以及后台界面

2)数据库是采用xml文件存储的

config.xml :保存用户名与密码

3)可以进入后台,录入客户数据

姓名、年龄、行业、地址、电话

4)通过列表也能查询到相关的用户数据

posted on 2016-04-22 23:41  山山未迟  阅读(149)  评论(0编辑  收藏  举报