Php 如何从XML文件中删除子节点
我有以下XML:Php 如何从XML文件中删除子节点,php,xml,xpath,Php,Xml,Xpath,我有以下XML: <photo> <position>1</position> <title>panos1</title> </photo> <photo> <position>2</position> <title>panos2</title> </photo> <photo> <position>3&
<photo>
<position>1</position>
<title>panos1</title>
</photo>
<photo>
<position>2</position>
<title>panos2</title>
</photo>
<photo>
<position>3</position>
<title>panos3</title>
</photo>
<photo>
<position>4</position>
<title>panos4</title>
</photo>
1.
全景1
2.
全景2
3.
全景3
4.
全景图4
我想使用PHP删除值为4
的position
标记
我使用的是Xpath
您可以使用removeChild()。
看看这个:
<?php
$xml = new DOMDocument();
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->loadXML($str) or die("Error");
// original
echo "<xmp>OLD:\n". $xml->saveXML() ."</xmp>";
// get document element
$root = $xml->documentElement;
$fnode = $root->firstChild;
//get a node
$ori = $fnode->childNodes->item(1);
// remove
$fnode->removeChild($ori);
echo "<xmp>NEW:\n". $xml->saveXML() ."</xmp>";
?>
你想只删除照片
子元素位置
还是想完全删除相应的父元素照片
元素?谷歌搜索我如何从XML文件中删除子节点php
显示了一些有希望的结果请参考:Panos Kar,Xpath是XML文档的查询语言,因此它不能更改(删除或插入)XML文档中的节点。XSLT是一种专门为执行XML转换而设计的语言。您的问题有一个使用XSLT的简单解决方案。您想在您的答案中看到XSLT解决方案吗?如果需要,请演示。。