DOM修改xml的步骤:查找节点,得到列表,从列表中选取要删的节点。节点不能删除,只能用新的来替换,要在父节点的高度进行。节点可以删除自己的子节点。 首先创建1.xml<?xml version="1.0" encoding="UTF-8"?> <root> <student id="1"> <name>yyj1</name> <age>21</age> <sex>男</sex> </student> <student id="2"> <name>yyj2</name> <age>21</age> <sex>男2</sex> </student> <student id="3"> <name>yyj3</name> <age>50</age> <sex>男3</sex> <sex2>男3</sex2> </student> <student id="4"> <name>yyj4</name> <age>31</age> <sex>男3</sex> </student> <a> <name>a</name> </a> <b> <name>b</name> </b> </root>
然后创建1.php<?php //创建dom对象 $dom=new DOMDocument('1.0','utf-8'); //载入XML文档进行分析 $dom->load('./1.xml'); //找到name节点 $name=$dom->getElementsByTagName('name')->item(3); //找到name的父节点,然后删除name $name->parentNode->removeChild($name);
//找到要替换的节点 $up=$dom->getElementsByTagName('name')->item(0); //创建新的节点 $up_name=$dom->createTextNode('要修改的名称'); //用新的节点替换旧的节点 $up->replaceChild($up_name, $up->firstChild); header('content-type:text/xml'); echo $dom->savexml(); ?>
运行结果如下<root> <student id="1"> <name>要修改的名称</name> <age>21</age> <sex>男</sex> </student> <student id="2"> <name>yyj2</name> <age>21</age> <sex>男2</sex> </student> <student id="3"> <name>yyj3</name> <age>50</age> <sex>男3</sex> <sex2>男3</sex2> </student> <student id="4"> <age>31</age> <sex>男3</sex> </student> <a> <name>a</name> </a> <b> <name>b</name> </b> </root>
|