プロが教えるわが家の防犯対策術!

phpでxmlの練習をしてるんですが全く動作しません。なんででしょうか?
コードを次に書きます。


<?php

$doc = new DOMDocument; // DOMDocumentのインスタンス生成

$root = $doc->createElement("cars");  // root要素を作成する
$doc->appendChild($root); // docの子としてrootを追加する

$elm1 = $doc->createElement("car"); // car要素を作成する
$root->appendChild($elm1); // car要素をrootの子として追加する

$txt1 = $doc->createTextNode("スポーツカー"); // テキストノードを作成する
$elm1->appendChild($txt1); // テキストノードをテキスト要素としてelm1の子として追加する

$elm2 = $doc->createElement("car"); // car要素を作成する
$root->appendChild($elm2); // rootの子としてcar要素を追加する

$txt2 = $doc->createTextNode("トラック"); // テキストノードを作成する
$elm2->appendChild(txt2); // elm2にtxt2を追加する

print $doc->saveXML();

?>

よろしくお願いします。

A 回答 (3件)

何がどう動かないのですか?


・このスクリプトの実行方法は?
・なんかメッセージとか出てないですか?

もし、これがコピー&ペーストしたものなら
$root = $doc->createElement("cars"); *ここ→* *←ここ*// root要素を作成する
に全角スペースがあります

この回答への補足

お返事ありがとうございます。
実行方法は自分のノートパソコンにアパッチサーバを立ててウェブブラウザ(safari)から閲覧する方法です。
エラーメッセージは何も出ません。真っ白の画面が映ってるだけです。
全角スペースも消しましたが変わりませんでした。

補足日時:2012/08/10 21:34
    • good
    • 0

片方は既に指摘がありますが、



・$root = $doc->createElement("cars");  // root要素を作成する
のコメントの前に全角スペースがあります。

・$elm2->appendChild(txt2); // elm2にtxt2を追加する
txt2 ⇒ $txt2 「$」が抜けています。

ソース的には上記が問題かと思います。

そのほか、ソースの保存形式がUTF-8でないと、テキストノード部分が正しくされないようです。
(windowsで試した限りでは。)

この回答への補足

お返事ありがとうございます。指摘された部分を訂正してみましたが変わらず何も表示されませんでした。
文字コードはemacsもsafariもEUC-JPなので何も指定してません。
まじで困りました。。

補足日時:2012/08/10 21:42
    • good
    • 0

ちょっと日がたってしまっているので解決されてしまったかもしれませんが。



<?php
error_reporting(E_ALL); // ← この部分を付け足して実行をしてみてください。
$doc = new DOMDocument; // DOMDocumentのインスタンス生成


error_reporting(E_ALL); を付ける事で、エラーメッセージが表示されると思いますので、
そこでのエラーを元に調べてもらえれば、解決の糸口になるのではないかと思います。
    • good
    • 0
この回答へのお礼

試してみましたが駄目でした。今回はプログラム的な問題じゃないみたいなので断念しました。
わざわざありがとうございました!

お礼日時:2012/08/18 11:13

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