人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: rapuntuleru
●カテゴリ:コンピュータ インターネット
✍キーワード:echo PHP XML タイトル テキスト
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Lhankor_Mhy
●25ポイント

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

echo str_replace(array('<', '>'), array('&lt;', '&gt;'), $xml);

2 ● km1981
●25ポイント

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


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

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();

3 ● ぱこち
●25ポイント

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

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

header('Content-type: application/xml; charset=UTF-8');
echo $xml;

4 ● a-kuma3
●25ポイント

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

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


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


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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ