以前に属性値を計算する方法について、これに関する質問を投稿しました。この属性を持つ要素は削除できないと思っていましたが。検索してみましたが、まだ適切な答えが見つかりません。あなたが私を助けてくれることを本当に願っています。これは私のコードです。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>