php DOM如何解析xml文档以及对节点增删改查
1、看看下面一个简单的xml文档:
<?xml version="1.0" encoding="UTF-8" ?>
<classes>
<stu>
<name>小明</name>
<sex>男</sex>
<age>11</age>
</stu>
<stu>
<name>小红</name>
<sex>女</sex>
<age>21</age>
</stu>
</classes>
2、下面就来实现对上面class.xml文档的节点的操作:
php DOM实现遍历节点:
<?php
//创建DOMDocument对象
$xmldoc = new DOMDocument();
//加载指定xml
$xmldoc->load("class.xml");
$stus =$xmldoc->getElementsByTagName("stu");
//访问name节点的值
echo $stus->item(1)->getElementsByTagName("name")->item(0)->nodeValue;
?>
3、增加节点操作:
<?php
$xmldoc = new DOMDocument();
$xmldoc->load("class.xml");
$root = $xmldoc->getElementsByTagName("classes")->item(0);
$stu_node = $xmldoc->createElement("stu");
//给该学生增加一个属性
$stu_node->setAttribute("intro","这是一个好学生");
$name_node = $xmldoc->createElement("name");
$name_node->nodeValue="www.phpddt.com";
$stu_node->appendChild($name_node);
$sex_node = $xmldoc->createElement("sex");
$sex_node->nodeValue="男";
$stu_node->appendChild($sex_node);
$age_node = $xmldoc->createElement("age");
$age_node->nodeValue=23;
$stu_node->appendChild($age_node);
$root->appendChild($stu_node);
$xmldoc->save("new_class.xml");
?>
4、删除节点操作:
<?php
$xmldoc = new DOMDocument();
$xmldoc->load("new_class.xml");
//想删除必须找到它
$stus=$xmldoc->getElementsByTagName("stu");
$stu1=$stus->item(0);
$stu1->parentNode->removeChild($stu1);
$xmldoc->save("delete_class.xml");
?>
5、更新节点操作:
<?php
$xmldoc = new DOMDocument();
$xmldoc->load("new_class.xml");
//找到才能更新啊
$stus=$xmldoc->getElementsByTagName("stu");
//取出第一个学生
$stu1=$stus->item(0);
//把age改成100
$stu1_age = $stu1->getElementsByTagName("age")->item(0);
$stu1_age->nodeValue = 100;
$xmldoc->save("new_class.xml");
?>