DOM
【DOM:Document Object Model】
文档-对象-模型,核心思想是把一个xml文件看成对象模型,然后通过对象的方式来进行增删改查(crud:c[create]r[read]u[update]d[delete])操作。
【CreateDOM.php】
<?php //xml文件的增删改 //1. 创建DOMDocument $xmldoc = new DOMDocument(); //2.加载xml文件 $xmldoc -> load('classes.xml'); //3.添加一个学生信息 //(1)取出根节点 $rootNode = $xmldoc -> getElementsByTagName('class') -> item(0); //(2)创建一个学生节点 $stuNode = $xmldoc -> CreateElement('student'); //echo $stuNode -> nodeType; //**************添加属性节点******************** $stuNode -> setAttribute('id', 'a003'); $stuNode -> setAttribute('address', '福建'); $stuNode -> setAttribute('bro', 'a001'); //********************************************** //(3)通过对象创建名字节点 $stuNameNode = $xmldoc -> createElement('name'); //把值赋给名字节点 $stuNameNode -> nodeValue = 'zhangsan'; //把名字节点挂载到学生节点下 $stuNode -> appendChild($stuNameNode); //创建年龄节点并挂载到学生节点下 $stuAgeNode = $xmldoc -> createElement('age'); $stuAgeNode -> nodeValue = '33'; $stuNode -> appendChild($stuAgeNode); //创建介绍节点并挂载到学生节点下 $stuIntroNode = $xmldoc -> createElement('intro'); $stuIntroNode -> nodeValue = '张三很牛'; $stuNode -> appendChild($stuIntroNode); //把新的学生节点挂载到根节点下 $rootNode -> appendChild($stuNode); //重新保存回xml文件中 $xmldoc -> save("classes.xml"); ?>
【DeleteDOM.PHP】
<?php $xmldoc = new DOMDocument(); $xmldoc -> load("classes.xml"); //取出根节点 //$rootNode = $xmldoc -> getElementsByTagName('class') -> item(0); //删除第3个学生 //1.先找到全部学生 $stusNode = $xmldoc -> getElementsByTagName('student'); //2.在全部学生里找到该学生 $stu3Node = $stusNode -> item(2); //3.内存中删除该学生 //通过根节点删除该学生 //$rootNode -> removeChild($stu3Node); //通过该学生的父节点删除该学生 $stu3Node -> parentNode -> removeChild($stu3Node); //通过对象更新保存文件 $xmldoc -> save("classes.xml"); ?>
【UpdateDOM.php】
<?php //更新某个节点值 //把第一个学生的年龄+10 //1.创建DOMDocument $xmldoc = new DOMDocument(); //2.加载xml文件 $xmldoc -> load('classes.xml'); //更新步骤 //(1)找到该学生 $stusNode = $xmldoc -> getElementsByTagName('student'); $stu1Node = $stusNode -> item(0); $stu1AgeNode = $stu1Node -> getElementsByTagName('age') -> item(0); $stu1AgeNode -> nodeValue += 10; $xmldoc -> save('classes.xml'); ?>