XMLHttpRequestでXMLのデータを受け取る

XMLHttpRequestでは、サーバーからの結果を2種類の方法で受け取ることが出来ます。 1つはresponseText、もうひとつがresponseXMLになります。

このresponseXMLとXMLHttpRequestがAjax(Asynchronous JavaScript + XML)の由来です。

responseXMLを使うことの利点は、受け取った結果をDOMとして扱えることです。

DOMで扱えるためデータへのアクセスが非常にわかりやすくなります。

XMLということなので文字コードはUTF-8が無難なようですが、文字化けの話題なども 見かけます。

function getAddr(){
  var xmlhttp = createXmlHttp();

  if(xmlhttp == null) return;

  xmlhttp.onreadystatechange = handleHttpResponse;

  function handleHttpResponse(){
  //リクエスト状況を確認(完了)
    if(xmlhttp.readyState == 4){
      var domDoc = xmlhttp.responseXML;
     var co = domDoc.getElementsByTagName('country');
    }
  }

  var zipValue = document.getElementById("zip").value;

  //サーバーへリクエスト
  xmlhttp.open("GET", "getaddr.php?param=" + zipValue, true);
  xmlhttp.send();
}

function createXmlHttp(){
  if(window.ActiveXObject){
    //Windows IE用
    try {
      return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        return null;
      }
    }
  }
  else if(window.XMLHttpRequest){
    //Windows IE以外のXMLHttpRequestオブジェクト実装ブラウザ用
    return new XMLHttpRequest();
  }
  else {
    return null;
  }
}