删除php中的xml节点

时间:2011-03-07 15:53:40

标签: php xml simplexml

我的xml文件:

<temporary>
  <users>
    <temp>
      <id>1</id>
      <title> Undercover</title>
      <author>Wiwit</author>
    </temp>
    <nissi>
      <confirm>3977678bce8515e8cdbfa64850904ad1</confirm>
      <firstname>hi</firstname>
      <lastname>hhey</lastname>
      <day>1</day>
    </nissi>
   </users>
</temporary>

我的php:

<?php
$user="nissi";
$xml = simplexml_load_file("temporary.xml") 
       or die("Error: Cannot create object");
unset($xml->temporary->users->$user);
?>

为什么这不起作用。 未设置不起作用。节点没有被删除。

2 个答案:

答案 0 :(得分:3)

它的工作原理如下:

$user="nissi";
$xml = simplexml_load_file("temporary.xml") 
       or die("Error: Cannot create object");
unset($xml->users->$user);
echo $xml->asXML();

您不能在此处的“请求”temporary中获取xml的根目录。

DEMO HERE

答案 1 :(得分:-1)

单独使用SimpleXML无法实现,您必须使用DOMElement转换,如下所示:

Remove a child with a specific attribute, in SimpleXML for PHP