私はPHPを初めて使っていますので、事前にお詫び申し上げます。私はXMLの解析に取り組んできましたが、ここでは記事のおかげですべてがうまくいっていますが、私のXMLから要素を削除するときには奇妙な動作が見られます。PHP removeChildのみ3つの要素のうち2つを削除します
私は、WebサービスからXMLを引っ張ってきたし、それは素晴らしい取り組んでいる、今私はXPathは(私にとっては)挑戦であることが証明された、要素のすべてのインスタンスを削除する必要があるので、今、私はこれがあります。
を$idlist = $dom2->getElementsByTagName('ELEMENTID');
foreach ($idlist as $id) {
print "<!--"."Removing Node ".$id->nodeName."=".$id->nodeValue."-->";
//$id->parentNode->removeChild($id);
}
私のプリントがXMLコメントである理由は、XML出力ファイルを生成しているからです。
私のXMLには、123という3つの要素が含まれています。コードを表示すると、3つすべてのnodeNameとnodeValueが表示されます。しかし、removeChild行のコメントを外すと変わってしまい、最初と3番目に一致する要素は削除されますが、2番目の要素は削除されません。
私の説明がややはっきりしていますが、このように反応する可能性があるremoveChild()については何かありますか?
ありがとう、クリス。
子供を1人削除すると、その子供はもうコレクションに含まれなくなります。 'while($ id = $ idlist [0])'を試してください。 –
このページの最初のコメントを確認してください:http://php.net/manual/en/domnode.removechild.php – jh1711