1

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

        $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 文件如下所示:

 <presets>
 <preset>
 <name code="default">Default</name>
  <createdBy>p</createdBy>
   <icons>q</icons>
 </preset>
 <preset>
   <name code="new_preset">New Preset</name>
    <createdBy>x</createdBy>
   <icons>y</icons>
 </preset>
 ...
 </presets>
4

1 回答 1

1

我在不使用 SimpleXMLElement 类的情况下找到了一个简单的答案。看看这个我的完整答案。 如何在php中获取xml节点的属性值?

于 2012-04-30T01:58:55.073 回答