取得情報の処理(XML、JSON)
(サーバ側の注意)content-type: text/xml, application/xmlなどXML形式を指定してすること。さもないと、XMLHttpObject of FirefoxのresponseXMLがヌルになる。
なお、クライアント側で、 取得時に次のように指定することで回避できる。
httpObj.overrideMimeType('application/xml');
要素のアクセス
E4Xがわかりやすいのですが、FirefoxやActionScriptでしかサポートされていません。
Namespace付きのタグに対してはgetElementsByTagNameNS("URIofNS",tag)を使います。
var eItems = xmlDoc.documentElement.getElementsByTagName('item');
for(var child=0;child<eItems.length;child++){
var eLink = eItems[child].getElementsByTagName('link')[0];
var tLink = getTextContent(eLink);
...
}
function getTextContent(node) {
try{
return node.textContent;
}catch(e){
return node.text;
}
}
NameSpaceがある場合
参考XML文書のロード
var xmlDoc;
//code for Internet Explorer
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
displaymessage();
}
// code for Mozilla, Firefox, etc.
else (document.implementation && document.implementation.createDocument)
{
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");
xmlDoc.onload=displaymessage;
}
function displaymessage()
{
document.write(xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue);
}