关于php:如何删除SimpleXMLElement?

How to delete a SimpleXMLElement?

本问题已经有最佳答案,请猛点这里访问。

我之前就发布过一个关于如何计算属性值的问题。 即使我确定无法删除具有此属性的元素。 我尝试搜索,但仍然找不到正确的工作答案。 我真的希望你能帮助我。 这是我的代码。 我通过xml文档寻找属性值,然后尝试删除具有该属性值的节点的父节点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        $xml = new SimpleXMLElement($xmlfile,0,true);

        $results = $xml->xpath("/presets/preset");

        foreach ($results as $result) {
        foreach ($result->children() as $second_gen) {
            if($second_gen->getName()=='name'){
                foreach($second_gen->attributes() as $a => $b) {
                    if($b==$preset_name){
                        echo($b);
                            echo($preset_name);
                            unset($result);
                        }

                }
            }

        }
        }
        $xml->asXML();

执行此代码的结果是我没有错误,并且回显了正确的$b$preset_name。 但是节点没有被删除。 它仍然在文档中。

我的xml文件如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
 [cc lang="php"]
 [cc lang="php"]
 <name code="default">Default</name>
  <createdBy>p</createdBy>
   <icons>q</icons>
 </preset>
 [cc lang="php"]
   <name code="new_preset">New Preset</name>
    <createdBy>x</createdBy>
   <icons>y</icons>
 </preset>
 ...
 </presets>


我没有使用SimpleXMLElement类就找到了一个简单的答案。 看看我完整的答案。
如何获取PHP中xml节点的attribute值?