分享

php使用DOM修改xml

 yyj的编程之路 2016-06-05

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>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约