Web サービスから xml ファイルを解析しようとしています。javascript loadXMLString 関数を使用して、xml を html に解析しています。変数にxmlコードを挿入すると、ローカルファイルで正常に機能していました。しかし、外部リンクからxmlを取得するために、ここでphp関数を次のように使用しました:
<?php
$request = "http://www.somewebsite.com/feeds/get-cities.php?vendor_key=xxx";
$response = file_get_contents($request);
$xmlstring = htmlspecialchars($response, ENT_QUOTES);
?>
<script language="javascript">
function loadXMLString(txt)
{
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
}
return xmlDoc;
}//function loadXMLString ends
text = <?php $xmlstring;?>
xmlDoc=loadXMLString(text);
document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("city");
for (i=0;i<x.length;i++)
{
document.write("<tr style='background:#dddddd;'><td>");
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("country")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
上記のコードでは、xml コードを php 変数 $xmlstring から javascript 変数テキストに挿入しようとしています。しかし、何も表示されません。しかし、以下のようにxmlコードをスクリプト内に配置すると、完全に機能します:
text="<cities>"
text=text+"<city>";
text=text+"<name>bulga</name>";
text=text+"<country>Giada De Laurentiis</country>";
text=text+"<city_id>2005</city_id>";
text=text+"</city>";
text=text+"</cities>";
どのように解析できるか知っている体はありますか。または、誰かがより良い解決策を持っている場合は、それも提案してください。