DOM 操作XML 增删改查

来源:互联网 发布:tensorflow 英文 编辑:程序博客网 时间:2024/05/19 20:59

一、XML页面

<?xml version="1.0" encoding="utf-8"?>
<class>
     <student info="美女">
          <name>小乔</name>
          <sex>女</sex>
          <age>20</age>
     </student>
     <student info="帅哥">
          <name>周瑜</name>
          <sex>男</sex>
          <age>35</age>
     </student>
</class>

二、增删改查

<?php
    //php通过DOM对象模型对XML文档进行操作
    header("content-type:text/html;charset=utf-8");   

  //查询操作

    //1)实例化DOM对象
    $dom = new DOMDocument("1.0");

    //2)加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中)
    $dom->load("dom.xml");

    //3)找到元素节点
    $names = $dom->getElementsByTagName("name");
    
    //4)获取相应节点的值
    // echo $names->item(0)->nodeValue;        //得到小乔    

    //5)获取到所有的值
    $students = $dom->getElementsByTagName("student");
    $sexs = $dom->getElementsByTagName("sex");
    $ages = $dom->getElementsByTagName("age");
    for($i=0;$i<$students->length;$i++)
    {
        echo $names->item($i)->nodeValue.'-';
        echo $sexs->item($i)->nodeValue.'-';
        echo $ages->item($i)->nodeValue.'<br>';
    }   

  //增加操作

    //1)实例化DOM对象
    $dom = new DOMDocument("1.0");

    //2)加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中)
    $dom->load("dom.xml");

    //3)创建节点并且赋值
    $name = $dom->createElement('name','诸葛亮');
    $sex = $dom->createElement('sex','男');
    $age = $dom->createElement('age','35');

    //4)创建父节点
    $student = $dom->createElement('student');

    //5)把子节点添加在父节点下
    $student->appendChild($name);
    $student->appendChild($sex);
    $student->appendChild($age);

    //6)添加到根节点下
    $document = $dom->documentElement;    //根节点
    $document->appendChild($student);

    //7)保存xml文件
    $dom->save("dom.xml");

//删除操作

    //1)实例化DOM对象
    $dom = new DOMDocument("1.0");

    //2)加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中)
    $dom->load("dom.xml");

    //3)找到要删除的节点
    $student = $dom->getElementsByTagName("student")->item(2);

    //4)找到他的父节点
    $document = $dom->getElementsByTagName("class")->item(0);

    //5)根据父节点删除其子节点
    $document->removeChild($student);

    //6)保存xml文件
    $dom->save("dom.xml");

//修改操作

    //1)实例化DOM对象
    $dom = new DOMDocument("1.0");

    //2)加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中)
    $dom->load("dom.xml");

    //修改节点的值
        $dom->getElementsByTagName("sex")->item(1)->nodeValue='男';
        $dom->save("dom.xml");

    //修改节点标签
        //1.创建新节点
        $nianling = $dom->createElement('nianling','35');
        //2.旧节点
        $old = $dom->getElementsByTagName("age")->item(1);
        //3.父节点
        $parent = $dom->getElementsByTagName("student")->item(1);
        //4.替换
        $parent->replaceChild($nianling,$old);
        //5.保存
        $dom->save("dom.xml");

//属性操作

    //1)实例化DOM对象
    $dom = new DOMDocument("1.0");

    //2)加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中)
    $dom->load("dom.xml");    

    //3)找到节点
    $student = $dom->getElementsByTagName("student")->item(1);    

    //4)添加属性
    $student->setAttribute('info','帅哥');

    //5)保存
    $dom->save("dom.xml");
?>

0 0
原创粉丝点击