下記のようなxmlファイルがあります。
<?xml version="1.0" encoding="UTF-8" ?> <list> <item> <staff_id>1111</staff_id> <name>鈴木</name> <address>東京都</address> </item> <item> <staff_id>2222</staff_id> <name>佐藤</name> <address></address> </item> <item> <staff_id>3333</staff_id> <name>高橋</name> <address></address> </item> </list>
上記のxmlファイルから該当のデータを削除し、
再度、同じファイル名で保存しようと考えており、
下記のようなプログラムを組みました。
<?php $filename = 'test.xml'; $xml = simplexml_load_file($filename); $test_id = '3333'; for( $i = 0; $i < count($xml->item); $i++ ) { if ( $xml->item[$i]->staff_id == $test_id) { unset($xml->item[$i]); break; } } file_put_contents($filename, $xml->asXML());
結果は下記のようになり、該当のデータは削除できたのですが、
出力のxmlのタグがおかしくなってしまいます。
PHP初心者でどこをどう直せばいいのか分かりません。
アドバイスをお願いします。
他に良い方法があれば教えていただけると幸甚です。
<?xml version="1.0" encoding="UTF-8"?> <list> <item> <staff_id>1111</staff_id> <name>鈴木</name> <address>東京都</address> </item> <item> <staff_id>2222</staff_id> <name>佐藤</name> <address/> </item> </list>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/15 04:46