php DOM如何解析xml文档以及对节点增删改查

2025-10-29 07:43:04

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

?>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢