使用PHP在XML中删除ID项

时间:2017-05-17 01:37:15

标签: php xml

我想在XML中按ID删除节点,我的代码是:

  $id=$_GET["id"];
  $usuarios= simplexml_load_file('cart.xml');
  if($_GET["action"] == "delete"){
    foreach($usuarios->carro as $elemento){
      if($elemento['id'] == $id) {
        echo '<script>alert("delete")</script>';
        unset($elemento['id']);
      }
    }
  }

但不起作用。

我的XML cart.xml

<?xml version="1.0"?>
<info>
<carro id="0">
 <usuario>alex</usuario>
 <producto>instict</producto>
 <Size>CH</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>
<carro id="1">
 <usuario>alex</usuario>
 <producto>instict</producto>
 <Size>G</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>
<carro id="2">
 <usuario>alex</usuario>
 <producto>instict</producto>
 <Size>G</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>
<carro id="3">
 <usuario>Gera</usuario>
 <producto>instict</producto>
 <Size>M</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>
</info>

我想删除例如id="2",因此输出为:

<?xml version="1.0"?>
<info>
<carro id="0">
 <usuario>alex</usuario>
 <producto>instict</producto>
 <Size>CH</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>
<carro id="1">
 <usuario>alex</usuario>
 <producto>instict</producto>
 <Size>G</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>

<carro id="3">
 <usuario>Gera</usuario>
 <producto>instict</producto>
 <Size>M</Size>
 <cantidad>1</cantidad>
 <precio>100</precio>
</carro>
</info>

1 个答案:

答案 0 :(得分:0)

更改 $usuarios->carro as $key => $elemento

然后

unset($usuarios->carro[$key]);

然后将结果作为字符串

写入新文件中

file_put_contents('newfile.xml', $usuarios->asXML());