以下のページを参考にAmazonAPIを触っているのですが、
echo $xml;
で、取得したXMLデータを表示すると、「実行サンプル」ページのようにテキストで中身だけ表示されてしまい、実際にどういったXMLが返ってきているのかが分かりません。
(タイトルだけ表示、等したいのですが、それができません)
どうすれば、取得したXMLをそのまま表示出来るのでしょうか?
http://php.s3.to/tt/aws.php
「そのまま表示」というのがどういう状態なのかちょっと分からなかったので、的外れであれば申し訳ないのですが、以下のような書き方ではどうでしょうか?
echo str_replace(array('<', '>'), array('<', '>'), $xml);
どんな結果にしたいのか具体的に教えてください
ダンプのようにして見るなら下のようにしてください
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();
何の変換もせず、ソースと同じ内容をブラウザにツリー表示したいという意味でしたら、Content-type を適切に設定すればツリー表示してくれると思います。
(ブラウザによっては「テキストで中身だけ」状態のままですが、そもそもそういうブラウザは普通の XML ファイルも中身だけ表示しているようです。質問者さんご自身が確認で使う用途なら問題ないと思います。)
header('Content-type: application/xml; charset=UTF-8'); echo $xml;
コメント(0件)