php对xml文件中节点的删除\编辑
2009-09-24 文章来源:互联网 浏览次数:2978
分享文章
php对xml文件中节点的删除\编辑
使用getElementsByTagName()方法删除\编辑XML节点
三个文件:
1.root.xml
2.remove.php —— 删除节点
3.replace.php —— 替换节点
1.root.xml
2.remove.php —— 删除节点
3.replace.php —— 替换节点
- <root>
- <child1>child1 content</child1>
- <child2>child2 content</child2>
- <child3>child3 content</child3>
- </root>
- <?php
- $xml_str = file_get_contents("root.xml"); //将root.xml文件中的内容读入一个字符串
- $doc = DOMDocument::loadXML($xml_str); //载入这个字符串
- //取得元素$child2
- $root = $doc->documentElement;
- $child2 = $root->getElementsByTagName("child2")->item(0);
- //删除$child2对象
- $root->removeChild($child2);
- //保存文件
- $doc->formatOutput = true;
- $doc->saveXML();
- $doc->save("root.xml");
- ?>
- <?php
- $xml_str = file_get_contents("root.xml"); //将root.xml文件中的内容读入一个字符串
- $doc = DOMDocument::loadXML($xml_str); //载入这个字符串
- //取得元素$child3
- $root = $doc->documentElement;
- $child3 = $root->getElementsByTagName("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
re.php
replace.xml
remove.php
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("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");
- ?>
- <?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>
- <?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>

文章评论(查看全部)