Php 如何从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&

我有以下XML:

 <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解决方案吗?如果需要,请演示。。