php dom xml增删改查crud

来源:互联网 发布:电脑优化清理软件 编辑:程序博客网 时间:2024/06/06 13:00

xml文档:

<?xml version="1.0" encoding="utf-8"?><班级>    <学生>        <名字>周星驰</名字>        <年龄>33</年龄>        <介绍>学习刻苦</介绍>    </学生>    <学生>        <名字>林青霞</名字>        <年龄>32</年龄>        <介绍>是一个好学生</介绍>    </学生>    <学生>        <名字>李俊</名字>        <年龄>18</年龄>        <介绍>好好学习</介绍>    </学生>    <学生 性别="男">        <名字>李俊888</名字>        <年龄>18</年龄>        <介绍>好好学习</介绍>    </学生></班级>


一: 查

<?php//解析一个文件的步骤//1:创建一个DOMDocument对象 表示文档$xmldoc=new DOMDocument();//2:指定加载哪个xml,解析哪个文件$xmldoc->load("classes.xml");//3:获取你关心的节点//把所有的学生获取(DOMNodeList)$stus=$xmldoc->getElementsByTagName('学生');//4:遍历for($i=0;$i<$stus->length;$i++){    //取出学生    $stu=$stus->item($i);    //取出各个信息    echo getNodeVal($stu,'名字').getNodeVal($stu,'年龄').getNodeVal($stu,'介绍')."<br/>";}function getNodeVal($stu,$tagName){    return $stu->getElementsByTagName($tagName)->item(0)->nodeValue;}?>


二:增

<?php//该案例演示对xml文件的增删改//1:创建DOMDocument$xmldoc=new DOMDocument();//2:加载xml文件$xmldoc->load("classes.xml");//3:添加一个学生信息(同时增加一个性别的属性)//⑴:取出根节点$root=$xmldoc->getElementsByTagName("班级")->item(0);//⑵:创建学生节点$stu_node=$xmldoc->createElement("学生");//echo $stu_node->nodeType;//添加属性节点//创建属性节点$stu_node->setAttribute("性别","男");//⑶:创建名字节点$stu_node_name=$xmldoc->createElement("名字");$stu_node_name->nodeValue="李俊888";//把名字挂载到学生节点下$stu_node->appendChild($stu_node_name);//⑷:创建年龄节点$stu_node_age=$xmldoc->createElement("年龄");$stu_node_age->nodeValue="18";//把年龄节点挂载到学生节点下$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("classes.xml");echo 'chengong';?>

三:删

<?php$xmldoc=new DOMDocument();$xmldoc->load("classes.xml");//$root=$xmldoc->getElementsByTagName("班级")->item(0);//删除第3个学生//1.找到这个学生$stus=$xmldoc->getElementsByTagName("学生");$stu1=$stus->item(3);//$root->removeChild($stu1);//这里有一个更加灵活的方法$stu1->parentNode->removeChild($stu1);$xmldoc->save("classes.xml");echo 'ok';?>

四:改

<?php$xmldoc=new DOMDocument();$xmldoc->load("classes.xml");//$root=$xmldoc->getElementsByTagName("班级");//更新某个节点的值//1:找到这个学生$stus=$xmldoc->getElementsByTagName("学生");$stu1=$stus->item(0);$stu1_age=$stu1->getElementsByTagName("年龄")->item(0);$stu1_age->nodeValue+=10;$xmldoc->save("classes.xml");echo 'ok';?>



1 0