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');

?>

 

posted @ 2014-10-22 00:58  ayee  阅读(174)  评论(0编辑  收藏  举报