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 に答える