使用php删除一个标签及其所有xml子节点

时间:2014-05-15 23:14:18

标签: php xml

我正在尝试从xml中删除一个项目及其所有子节点但是当我执行以下php时,只会移除子节点。 以下是我的PHP

<?php
header('Content-Type: text/xml');
$doc = new DOMDocument('1.0');
$url = '../../data/auction.xml';
$itemNo ="0";
$xml=simplexml_load_file($url);
    foreach($xml->xpath('/items/item[itemNumber="'.$itemNo.'"]')as $child)
    {
        unset($child[0]);
        //$child->parentNode->removeChild($node);
    }
print $xml->asXML();
?>

原始XML

<?xml version="1.0"?>
<items>
  <item>
    <itemNumber>0</itemNumber>
    <itemName>item1</itemName>
    <category>Phones</category>
 </item>
<item>
    <itemNumber>2</itemNumber>
    <itemName>item3</itemName>
    <category>laptops</category>
   </item>
</items>

实际输出

<items>
 <item>
 </item>
 <item>
    <itemNumber>2</itemNumber>
    <itemName>item3</itemName>
    <category>laptops</category>
 </item>
</items>

期望的输出

<items>
     <item>
        <itemNumber>2</itemNumber>
        <itemName>item3</itemName>
        <category>laptops</category>
     </item>
</items>

请告诉我我做错了什么

0 个答案:

没有答案