0

を使用して XML ノードを削除しようとしていますSimpleXmlElement

しかし、このコードを実行した後、XML ファイルに変更はありません。動作するはずunsetですが、ファイルに変更はありません。

$xml   = new SimpleXMLElement('goods.xml', NULL, TRUE);
$items = $xml->xpath('/items/item');
for ($i =0; $i < sizeof($items); $i++)
{
    if ($items[$i]->qty == 0 and $items[$i]->qtyonhold == 0)
    {
        $index = $i;
    }
}

$index = $index + 1;

var_dump($items[$index]);
unset($items[$index]);

$xml->asXML("goods.xml");
4

2 に答える 2

3

item xpath を $items 変数に割り当てています。そこからインデックスを正しく削除しますが、$xml 変数を表示しています。$items は、$xml オブジェクトの xpath のコピーのようなものです。したがって、実際には $xml 変数自体からそのインデックスを削除する必要があります。

このプラットフォームで、ここで説明された適切な解決策を見つけました: https://stackoverflow.com/a/262556/2922852

于 2013-10-26T12:31:16.453 に答える