php对xml文件中节点的删除编辑
使用getElementsByTagName_r()方法删除编辑XML节点
三个文件:
1.root.xml
2.remove.php —— 删除节点
3.replace.php —— 替换节点
root.xml
<root>
<child1>child1 content</child1>
<child2>child2 content</child2>
<child3>child3 content</child3>
</root>
remove.php
<?php
$xml_str = file_get_contents("root.xml"); //将root.xml文件中的内容读入一个字符串
$doc = DOMDocument::loadXML($xml_str); //载入这个字符串
//取得元素$child2
$root = $doc->documentElement;
$child2 = $root->getElementsByTagName_r("child2")->item(0);
//删除$child2对象
$root->removeChild($child2);
//保存文件
$doc->formatOutput = true;
$doc->saveXML();
$doc->save("root.xml");
?>
replace.php
<?php
$xml_str = file_get_contents("root.xml"); //将root.xml文件中的内容读入一个字符串
$doc = DOMDocument::loadXML($xml_str); //载入这个字符串
//取得元素$child3
$root = $doc->documentElement;
$child3 = $root->getElementsByTagName_r("child3")->item(0);
//创建一个newchild元素来替代child3
$root->replaceChild(new DOMElement("newchild", "new content"), $child3);
//保存文件
$doc->formatOutput = true;
$doc->saveXML();
$doc->save("root.xml");
?>
使用使用XPath删除\修改节点
1.xml.xml
2.re.php —— 替换\删除节点
3.replace.xml —— 替换节点后的XML文件
4.remove.xml —— 删除节点后的XML文件
xml.xml
<?xml version="1.0"?>
<books>
<book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O'Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O'Reilly</publisher>
</book>
</books>
re.php
<?php
$dom = new DomDocument();
$dom ->load("xml.xml");
$xpath = new domxpath($dom);
//修改节点
$oldtitle = $xpath->query("/books/book/title")->item(0);
$newtitle = $dom->createElement_x("title");
$newtitle->appendChild(new DOMText("NEW"));
$oldtitle->parentNode->replaceChild($newtitle, $oldtitle);
$dom->save("replace.xml");
//删除节点
$oldtitle = $xpath->query("/books/book/title")->item(1);
$oldtitle->parentNode->removeChild($oldtitle);
$dom->save("remove.xml");
?>
replace.xml
<?xml version="1.0"?>
<books>
<book>
<author>Jack Herrington</author>
<title>NEW</title>
<publisher>O'Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O'Reilly</publisher>
</book>
</books>
remove.php
<?xml version="1.0"?>
<books>
<book>
<author>Jack Herrington</author>
<title>NEW</title>
<publisher>O'Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<publisher>O'Reilly</publisher>
</book>
</books>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。