こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

index.php から外部関数に飛び、文字列を返してきてindex.

index.php から外部関数に飛び、文字列を返してきてindex.phpで
XML形式で表示するプログラムはどのように書けばいいんでしょうか?
/* ---func1.php--- */
function func1($aa,$bb){
$xml_code = "<func1>\n";
$xml_code .= "<aaa>".$aaa."</aaa>\n";
$xml_code .= "<bbb>".$bbb."</bbb>\n";
$xml_code .= "</func1>\n";
return ($xml_code);
}
/* ---func2.php--- */
function func2($cc,$dd){
//DBからデータを取得して
$sql = "SELECT ccc, ddd, eee, tel FROM tbl_a WHERE id = ".$id;

$moji_db = "";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)){
$xml_code = "<func2>\n";
$xml_code .= "<ccc>".$row['ccc']."</ccc>\n";
$xml_code .= "<ddd>".$row['ddd']."</ddd>\n";
$xml_code .= "<eee>".$row['eee']."</eee>\n";
$xml_code .= "</func2>\n";
}
return ($xml_code);
}

index.php で
両方の$xml_codeを出力する

以上のようなプログラムなんですけど、
index.phpでのxmlでの表示の仕方がわかりません。

/* ---index.php--- */
<?php
// require
func1.phpとfunc2.php

function xml_make(&$xml ){
// DB 接続

// XML Header生成
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"."\n";
echo func1();
echo func2();

// XML Footer生成

// DB 切断
}
?>
としてindex.phpを実行するとIEで以下のエラーが出ます。
(firefoxではでません。両ブラウザ共、ソースを表示するとXML形式にはなっていますが・・)
「XML ページを表示できません
XSL スタイル シートを使用した XML 入力は表示できません。
エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。
--------------------------------------------------------------------------------
XML ドキュメント内では最上位の要素に限り、使用できます。


それと文字列($xml_code)をSimpleXMLで処理するにはどうしたらいいのでしょう?

投稿日時 - 2010-09-29 16:07:53

QNo.6216162

すぐに回答ほしいです

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

IEで以下のエラーが出ます。

=>XMLのドキュメントルートがないからじゃないですか。

header('Content-Type: text/xml; charset=utf-8');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"."\n";
echo "<hoge>";
echo func1();
echo func2();
echo "</hoge>";

それから改行文字は不要だと思うんですけど(人間が見るなら見やすいですが)

SimpleXMLで処理するにはどうしたらいいのでしょう?

=>simplexml_load_string関数とかsimplexml_load_file関数です。

http://www.phppro.jp/phpmanual/php/book.simplexml.html
SimpleXMLは、出来上がってるXMLを簡易にパースするのに使います。

新たにXMLを生成するなら、DOM関数では、
http://www.php.net/manual/ja/book.dom.php

投稿日時 - 2010-09-29 17:48:28

お礼

丁寧に回答ありがとうございます。
ドキュメントルートを入れたらできました。

SimpleXMLとDOMの使い方の違いもいまいちわかってなかったので勉強になりました。

投稿日時 - 2010-10-01 11:41:43

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問