アプリ版:「スタンプのみでお礼する」機能のリリースについて

idが条件に合ったら子ノードを削除する。という簡単なことをしたいのですが、サンプルソースをコピーして簡単なソースを作りましたが、何を変えてもエラーメッセージも出なければ、XMLファイルに変化もありません。
どなたか詳しい方削除ができない理由を教えてください。

books.xml
<?xml version="1.0" ?>
<data>
<p><name id="1">aaaa</name><ad>1111</ad></p>
<p><name id="2">bbbb</name><ad>2222</ad></p>
<p><name id="3">cccc</name><ad>3333</ad></p>
<p><name id="4">dddd</name><ad>4444</ad></p>
<p><name id="5">eeee</name><ad>5555</ad></p>
<p><name id="6">ffff</name><ad>6666</ad></p>
</data>

xmltest.php
<?php
//ドキュメントオブジェクトの作成
$doc = new DOMDocument();
//XML 文書ファイルのパース(DOM ツリーの作成)
$doc->load("books.xml");
$id='3';
//DOMXPath オブジェクトの作成
$xpath = new DOMXPath($doc);
//ローケーションパスの作成
$query = "/data/p[name[@id='$id']]";
//XPath を評価する 戻り値は、DOMNodeList
$nodeList = $xpath->query($query);

$pNode = $nodeList->item(0);
//print $pNode -> textContent;
//"data"要素ノードの取得
$dataElement= $doc->getElementsByTagName("data")->item(0);
//print $dataElement -> textContent;
//データを削除する
$dataElement->removeChild($pNode);
?>


これでidが3の行を消したいです

A 回答 (1件)

$dataElement = $doc->documentElement;


$dataElement->removeChild($pNode);
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

原因はそれかどうか判断できるレベルではないのですが、$doc -> save("books.xml");
を付け足したことで問題を解決できました。

お礼日時:2006/05/31 07:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!