• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでのXMLの編集・削除の方法)

PHPでXMLの編集・削除の方法

このQ&Aのポイント
  • PHPでXMLの編集・削除を行う方法を解説します。
  • XPathを使用して要素を指定し、削除や編集を行います。
  • 具体的なコード例や注意点も紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

以下でどうでしょうか。 // recordノードを取得 $xpath_record = $xpath->query("//record[@number=$session_number]")->item(0); // recordノードを削除 $xpath_record->parentNode->removeChild($xpath_record);

kanan86
質問者

お礼

回答ありがとうございました!! レコード全てを削除することができました!! 本当に、感謝の気持ちでいっぱいです。 ありがとうございました!!

その他の回答 (1)

回答No.1

$xpath->query() が返すのは、DOMNodeListです。 http://jp.php.net/manual/ja/function.dom-domxpath-query.php ですので、 $xpath_title = $xpath->query(...); ではなくて、 $xpath_title = $xpath->query(...)->item(0); としなければだめです。 【削除について】 $rec = $xpath_title->parentNode; // titleの親ノードをrecに代入 $rec->removeChild($xpath_title); // recの子ノード(title)を削除 のようにします。 二行をまとめると、以下になります。 $xpath_title->parentNode->removeChild($xpath_title); 【編集について】 $xpath_title->title という書き方は、SimpleXMLなどの記法です。 削除の時と同じ方法で、XPathでtitleノードを取得して、 $xpath_title->nodeValue = "hogehoge"; としてやればよいと思います。

kanan86
質問者

補足

回答ありがとうございました! 無事、編集・削除も出来るようになりました! 本当に感謝の気持ちでいっぱいです。 ただ、大変恐縮ではあるのですが 削除のPHPをタイトルのみではなく <record>要素を丸々削除したいと考えています。 自分でも、Xpathを書き換えたり等試みてはみたのですが なかなか消す事ができません。 よろしければ、丸々削除する方法も 教えて頂ければ嬉しいです。 大変申し訳ありませんが、よろしくお願いします。

関連するQ&A