php技术对xml文件进行操作
来源:互联网 发布:天刀魏无羡捏脸数据 编辑:程序博客网 时间:2024/05/08 18:49
使用php技术对xml文件进行操作
常用的三种技术
① php dom
② php 结合xpath 操作xml
③ SimpleXml
说明Dom
dom(document object model) 文档-对象-模型,核心思想是把一个xml文件,看成一个对象模型,然后通过对象的方式来操作xml文件
php dom技术对xml文件进行增删改查操作实例:
xml文件:
<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?><班级><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu><stu 性别="男" 年龄="100"><name>韩顺平8</name><sex>男</sex><age>80</age><介绍>学习不刻苦</介绍></stu></班级></span>
1、查询:
<span style="font-size:18px;"><?phpheader("Content-Type:text/html;Charset=utf-8");//解析一个文件的步骤//1.创建一个DOMDocument对象 表示文档$xmldoc=new DOMDocument();//2.指定加载哪个xml,解析哪个文件$xmldoc->load("test.xml");//3.获取你关心的节点//把所有的学生获取(DOMNodeList )$stus=$xmldoc->getElementsByTagName("stu");/* var_dump($stus->item(4));exit; *///4.遍历for($i=0;$i<$stus->length;$i++){ //取出学生 $stu=$stus->item($i); //各个信息 echo getNodeVal($stu,"name")."--" .getNodeVal($stu,"sex")."--".getNodeVal($stu,"age")."--".getNodeVal($stu,"介绍")."<br/>";}function getNodeVal(&$MyNode,$tagName){ return $MyNode->getElementsByTagName($tagName)->item(0)->nodeValue;}?></span>2、添加:
<span style="font-size:18px;"><?php header("Content-Type:text/html;Charset=utf-8");//该案例演示对xml文件的增删改//1创建DOMDocument$xmldoc=new DoMDocument();//2.加载xml文件$xmldoc->load("test.xml");//3.演示如何添加一个学生信息(同时增加一个性别的属性)//(1)取出根节点$root=$xmldoc->getElementsByTagName("班级")->item(0);//(2)创建学生节点$stu_node=$xmldoc->createElement("stu");//echo $stu_node->nodeType;//******添加属性节点*******//创建属性节点$stu_node->setAttribute("性别","男");$stu_node->setAttribute("年龄","100");//(3)创建名字节点$stu_node_name=$xmldoc->createElement("name");$stu_node_name->nodeValue="韩顺平8"; //为什么我们可以使用nodeValue属性??//把名字节点挂载到学生节点下$stu_node->appendChild($stu_node_name);// 创建性别$stu_node_sex=$xmldoc->createElement("sex");$stu_node_sex->nodeValue="男";//把性别节点挂载到学生节点$stu_node->appendChild($stu_node_sex);// 创建年龄$stu_node_age=$xmldoc->createElement("age");$stu_node_age->nodeValue="80"; //把年龄节点挂载到学生节点$stu_node->appendChild($stu_node_age);//创建介绍节点$stu_node_intro=$xmldoc->createElement("介绍");$stu_node_intro->nodeValue="学习不刻苦";$stu_node->appendChild($stu_node_intro);//把学生节点,挂载到根节点下$root->appendChild($stu_node);//重新保存会xml//如果save到源文件,则相当于是对文件更新,添加了新的东西//如果save 是新的文件名,则是保存到新文件(将原文件内容加刚加的内容全部添加到新文件中)$xmldoc->save("test.xml");echo "成功!";?></span>
3、删除:
<span style="font-size:18px;"><?php header("Content-Type:text/html;Charset=utf-8");//1创建DOMDocument$xmldoc=new DoMDocument();//2.加载xml文件$xmldoc->load("test.xml");//3.演示如何添加一个学生信息//(1)取出根节点$root=$xmldoc->getElementsByTagName("班级")->item(0);//删除第3个学生//1.找到该学生$stus=$xmldoc->getElementsByTagName("stu");$stu1=$stus->item(0);//$root->removeChild($stu1);/* DOM 属性:innerHTML - 节点(元素)的文本值parentNode - 节点(元素)的父节点childNodes - 节点(元素)的子节点attributes - 节点(元素)的属性节点 *///这里有一个更加灵活的方法$stu1->parentNode->removeChild($stu1);//更新文件$xmldoc->save("test.xml");echo "删除ok";?></span>
4、更新:
<span style="font-size:18px;"><?phpheader("Content-Type:text/html;Charset=utf-8");//更新某个节点值//把第一个学生的年龄+10//1.创建DOMDocument$xmldoc=new DoMDocument();//2.加载xml文件$xmldoc->load("test.xml");//更新步骤//(1)找到这个学生$stus=$xmldoc->getElementsByTagName("stu");$stu1=$stus->item(0);//即使下面只有一个指定名字标签,也要加 item(0) ,因为系统本身并不知道有几个,若不加,系统不能识别。$stu1_age=$stu1->getElementsByTagName("age")->item(0);$stu1_age->nodeValue+=10;//更新文件$xmldoc->save("test.xml");echo "更新ok";?></span>
0 0
- php技术对xml文件进行操作
- PHP对XML文件操作
- xml学习笔记②PHP DOM--对xml文件进行解析操作
- xml学习笔记②PHP DOM--对xml文件进行更新操作
- xml学习笔记③PHP DOM--对xml文件进行修改和删除操作
- dom4j对xml文件进行更新操作
- 用Jaxp包中的DOM技术对XML文件进行解析并完成对文件的CRUD操作
- 用Jaxp包中的SAX技术对XML文件进行解析并完成对文件的读取操作.doc
- php对xml文件的操作
- xml-使用dom4j对xml文件进行crud操作
- 使用Javascript和PHP对服务端XML文档进行操作
- 使用LINQ技术对XML文件进行读取
- 如何使用JDOM对XML文件进行操作
- 使用java 对xml文件进行DOM操作
- 使用JAVA对XML文件进行DOM操作
- 对XML文件进行的添加、删除、修改、查询操作。
- 使用Jdom对xml文件进行基本操作
- java中用dom4j对xml文件进行操作
- C++的作用域与链接
- 软考-面向对象技术
- 【并行计算】Bitonic Sort(双调排序)基础
- nyoj77开灯问题
- hzoj 2301(莫比乌斯反演)
- php技术对xml文件进行操作
- 【Linux开发】Linux下的多线程编程
- 移通学院 2015校内赛
- cf(贪心)
- Python验证码识别处理实例
- windows 程序设计之「NetTime.C」范例分析笔记
- Qt动画框架--原创翻译
- nyoj 管道问题 142 (数学计算几何)
- 通过rsync工具搭建简单的远程容灾备份系统