PHPXML编程学习笔记

上传人:平*** 文档编号:11920196 上传时间:2017-10-15 格式:DOC 页数:15 大小:1.15MB
返回 下载 相关 举报
PHPXML编程学习笔记_第1页
第1页 / 共15页
PHPXML编程学习笔记_第2页
第2页 / 共15页
PHPXML编程学习笔记_第3页
第3页 / 共15页
PHPXML编程学习笔记_第4页
第4页 / 共15页
PHPXML编程学习笔记_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《PHPXML编程学习笔记》由会员分享,可在线阅读,更多相关《PHPXML编程学习笔记(15页珍藏版)》请在金锄头文库上搜索。

1、XML 历史:两台计算机之间的沟通gml-sgml-html(1993)-xml(1998)html 的缺点1. 标签是规定好的,用户不能自定义标签2. 数据和显示是杂合在一起的,数据和显示是绑定在一起的。数据无法复用了3. html 的标签本质是没有什么含义的。也就是说不能通过标签来说明标签的内容代表什么。在网络传输中不易识别。4. html 文件并未真正的国际化,标准化。解决方案 xhtml,xml我们什么地方需要 xml: 可以作为程序间通讯的标准(ajax text xml json)。 可以作为配置文件使用(php 应用最多) 可以充当小型数据库。实际开发中有些变态很诡异。有些数据放

2、在数据库中代价比较高,这种情况下可以直接考虑放文件。xml 语法:文档的声明元素属性注释快速入门:用 xml 来描述一个班级信息:孙悟空 男100张辉 男20xml 必须要有一个根元素。根元素:一个完全包含其他元素的元素。内容没有内容一般写成这样:xml 标签不允许交叉潜逃在 php 解析 xml 的时候:孙江孙江以上写法在解析的时候不一定相同。命名规范:区分大小写,不要以数字或者_打头,不能以关键字当表级,不能有空格属性:属性使用需要注意的地方。1. 如果我们的属性值中有双引号又有单引号,可以使用实体字符来解决。2. 一个标签里面不能有两个相同的属性名。3. 注释CDATA 节:内容很诡异,

3、也就是说包含特殊字符使用语法:如何使用 xml 来传递、保存一个图片使用程序先读入到内存,然后在保存在文件的 CDATA 节中。xml 处理指令 PI:processing instructiondtd :document type defination一种约束技术;要求:可以看懂 dtd,可以根据别人提供的 dtd 写出对应的xml 文件。引入 dtd 文件:dtd 文件:如果违反了我们的约束,那么浏览器也不会去检测是否违反了规定。我们可以写代码测试或者用工具检测写代码测试:checkDTD.xml测试 dtd);document.write(错误行号=+xmldoc.parseError.

4、line);/DTD 文件研究:内部 dtd,外部 dtd,内外部集合 dtd在 xml 文件中引用 dtd 文件的方式:本地引用:引入公开的 dtd:dtd 规范:组合类型:属性:定义:实体定义:实体用于为一段内容创建一个别名。1.引用实体原理:在 dtd 定义,在 xml 中使用2.参数实体dtd 定义,dtd 中使用使用 PHP 对 XML 文件进行操作常用的三种技术:php 与 domphp 与 xpathsimple 与 xmlPHP DOMdom 的解释:document object model:文档 -对象- 模型核心思想,把一个 xml、html 文件看成一个对象模型,然后就

5、通过对象的方式来对我们的文件进行操作。快速入门:对 class.xml 班级信息进行 增删改查(crud)查找:案例 1.load(class.xml);/3.获取第一个学生的名字$stus=$xmldoc-getElementsByTagName(stu);/$stus 并非是一个单纯的数组$stu1=$stus-item(0);/$stu1 是一个节点类型$stunames=$stu1-getElementsByTagName(name);/stunames 并非是一个单纯的数组$stunames_first=$stunames-item(0);$firstname=$stunames_f

6、irst-nodeValue;echo $firstname;/根据节点,取出名称的第一个值。function getNodeVal(&$MyNode,$tagName)return $MyNode-getElementByTagName($tagName)-item(0)-nodeValue;?案例 2.load(class.xml);$stus=$xmldoc-getElementsByTagName(stu);for($i=0;$ilength;$i+)$stu=$stus-item($i);echo getNodeVal($stu,name).-.getNodeVal($stu,sex

7、).-.getNodeVal($stu,age).;/* $nodes=$stu-getElementsByTagName(name);for($j=0;$jlength;$j+)$node=$nodes-item($j);*/function getNodeVal(&$MyNode,$tagName)return $MyNode-getElementsByTagName($tagName)-item(0)-nodeValue;?添加:案例:load(class.xml);/添加信息/ 1.取出根节点$root=$xmldoc-getElementsByTagName(班级)-item(0);

8、/ 2.创建学生节点$stu_node=$xmldoc-createElement(stu);/ 3.再创建名字节点$stu_node_name=$xmldoc-createElement(name);$stu_node_name-nodeValue=中国;/4 挂在$stu_node-appendChild($stu_node_name);$stu_node_sex=$xmldoc-createElement(sex);$stu_node_sex-nodeValue=5000;/4 挂在$stu_node-appendChild($stu_node_sex);$stu_node_age=$x

9、mldoc-createElement(age);$stu_node_age-nodeValue=母亲;/4 挂在$stu_node-appendChild($stu_node_age);/4 把新的学生节点挂在到根节点$root-appendChild($stu_node);/重新保存 xml 文件/如果 save 到原文件,则相当于添加了新的记录,/如果 save 是新的文件名,则是保存一个新文件$xmldoc-save(Newclass.xml);?添加属性删除:load(class.xml);/添加信息/ 1.取出根节点$root=$xmldoc-getElementsByTagNam

10、e(班级)-item(0);/删除“中国”/首先是要找打该学生$stus=$xmldoc-getElementsByTagName(stu);$stu1=$stus-item(0);$root-removeChild($stu1);/更新文件$xmldoc-save(class.xml);?更新:案例:load(class.xml);$stus=$xmldoc-getElementsByTagName(stu);$stu1=$stus-item(0);$stu1_age=$stu1-getElementsByTagName(age)-item(0);$stu1_age-nodeValue+=1

11、0;/更新文件$xmldoc-save(class.xml);?综合案例:xml 文件做词库:xpath:phpdom 技术可以跨层取出,但是不能保证层次关系,但是xpath 可以跨层且可以保持层次关系。xpath:xml path language设计的核心思想:可以通过 xpath 迅速简捷的定位查找节点。只是查找,不能进行增删改。案例演示:案例:load(test.xml);/转对象$domXPath=new DOMXPath($xmldoc);/使用 xpath 技术查询$node_list=$domXPath-query(/*);echo $node_list-length;echo ;for($i;$ilength;$i+)$node=$node_list-item($i);echo $node-tagName.;?SimpleXML:核心思想:以面向对象的方式操作 xml 文件案例:stu;/echo $stus-length;/$stu=$stus0;/echo $stu-name;for($i=0;$iecho .$stu-name;/取出属性 echo $stustuNo;/simplexml 和 xpath 结合使用?说明:1. 直接装在文件2. 装在 dom 对象3. 装在字符串

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号