PHPで、取得したXMLをそのままブラウザに表示したい。

以下のページを参考にAmazonAPIを触っているのですが、
echo $xml;
で、取得したXMLデータを表示すると、「実行サンプル」ページのようにテキストで中身だけ表示されてしまい、実際にどういったXMLが返ってきているのかが分かりません。
(タイトルだけ表示、等したいのですが、それができません)
どうすれば、取得したXMLをそのまま表示出来るのでしょうか?

http://php.s3.to/tt/aws.php

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/07/31 13:56:37
  • 終了:2011/08/07 14:00:03

回答(4件)

id:Lhankor_Mhy No.1

Lhankor_Mhy回答回数779ベストアンサー獲得回数2302011/07/31 14:13:02

ポイント25pt

「そのまま表示」というのがどういう状態なのかちょっと分からなかったので、的外れであれば申し訳ないのですが、以下のような書き方ではどうでしょうか?

echo str_replace(array('<', '>'), array('&lt;', '&gt;'), $xml);
id:km1981 No.2

km1981回答回数429ベストアンサー獲得回数492011/07/31 15:04:25

ポイント25pt

どんな結果にしたいのか具体的に教えてください


ダンプのようにして見るなら下のようにしてください

echo htmlspecialchars($xml);

Titleタグの要素だけ見たいなら下のようにします

function searchTag($obj, $tagname, &$arry) {
	foreach ($obj as $tag=>$child) {
		if ($tagname == (string)$tag) {
			$arry[] = (string)$child;
			return;
		} else {
			searchTag($child, $tagname, $arry);
		}
	}
}

$obj = simplexml_load_string($xml);
searchTag($obj, 'Title', $arry);
foreach ($arry as $val)		echo $val . "<br />";

XMLを整形出力したいなら下のようにします

$dom = DOMDocument::loadXML($xml);
$dom->encoding = 'UTF-8';		//ここに文字エンコードを指定してください
$dom->formatOutput = TRUE;
echo $dom->saveXML();
id:pacochi No.3

ぱこち回答回数246ベストアンサー獲得回数1112011/07/31 18:03:19

ポイント25pt

何の変換もせず、ソースと同じ内容をブラウザにツリー表示したいという意味でしたら、Content-type を適切に設定すればツリー表示してくれると思います。

(ブラウザによっては「テキストで中身だけ」状態のままですが、そもそもそういうブラウザは普通の XML ファイルも中身だけ表示しているようです。質問者さんご自身が確認で使う用途なら問題ないと思います。)

header('Content-type: application/xml; charset=UTF-8');
echo $xml;
id:a-kuma3 No.4

a-kuma3回答回数4440ベストアンサー獲得回数18242011/07/31 18:04:16

ポイント25pt

質問で上げてもらったページの最下部にある「XMLで見る」みたいに、

XML だけを、そのまま表示できれば良いんですよね。


header("Content-type: text/plain; charset=※");


というふうに、ヘッダの Content-type を text/plain か、text/xml に指定してください。

※の部分は、出力する文字コードに合わせて。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません