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

DOM で XML 文書を結合する例を探していたら、下記のものが見つかりました。

http://www.atmarkit.co.jp/fxml/askxmlexpert/020m …

これを参考に、PHP5 でテストするために、下記のスクリプトを作成しました。

<?php
$r1 = new DomDocument;
$r1->loadXML("<Items><Item>a</Item></Items>");
$r1rt = $r1->documentElement;

$r2 = new DomDocument;
$r2->loadXML("<Item>b</Item>");
$r2rt = $r2->documentElement;

$r1rt->insertBefore($r2rt,null);

$r1->encoding = "utf-8";
print $r1->saveXML();
?>


このスクリプトを実行すると、insertBefore のところで例外が発生しエラーになってしまいます。何が悪いのでしょうか?

最終的にやりたいのは XML 文書を結合するということなので、DOM にはこだわりません。何か良い方法があれば、お知恵をお貸し下さい。

A 回答 (1件)

# ソースにコメントをつけて回答します。



$r1 = new DomDocument;
$r1->loadXML("<Items><Item>a</Item></Items>");
$r1rt = $r1->documentElement;

$r2 = new DomDocument;
$r2->loadXML("<Item>b</Item>");
$r2rt = $r2->documentElement;

# 違うXMLドキュメントからコピーする場合はちゃんと
# importNodeを行いましょう。
$r2rt_copy = $r1->importNode($r2rt, true);

# 最後に付け加えるならappendChildを用いたほうがいいと思います。
$r1rt->appendChild($r2rt_copy);

$r1->encoding = "utf-8";
print $r1->saveXML();

# PHPの経験は少ないので記述ミスがあると思います。
# そこは直してください(*^^*)
    • good
    • 0

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