あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

Microsoft.XMLDOM

JScript限定です。

  • Internet Explorer 5.5/6.0 で使用できる Microsoft.XMLDOM
    • WebサーバーからHTTPで送られてくるXML文書をクライアント(IE)で受け取りパースできる。(セキュリティでの問題は考慮必要)
...
var xmlData = null;

function verify1(){
  if( xmlData.readyState != 4 ){ return false; }  // when end
}

function checkBrowser(){
  if( window.ActiveXObject ){  // 対応されているかチェックする。
    xmlData = new ActiveXObject( "Microsoft.XMLDOM" );
  }
}

function loadXmlData(){
  if( xmlData ) delete xmlData;
  else  return false;

  xmlData.async="false";
  xmlData.onreadystatechange=verify1;
  xmlData.load( url );  // XMLデータをWebサーバーから受け取る

  var rootNode = xmlData.documentElement;  // ルートエレメントを取得
  setNode( rootNode );
  return true;
}

function setNode( pNode ){
  if( pNode == null )	return;

  var node = pNode;

  if( node.nodeName == "ele1" ){
    var value = node.text;  // 要素"ele1"の値を取得
    ...  // 処理
    var attr = node.getAttributeNode("attr1");
    if( attr )  value = attr.value;  // 属性"attr1"の値の取得
    ...  // 処理
  }else if( node.nodeName == "ele2" ){
    ...
    ...
  }

  // 同じ要素名でネストしている場合に再帰呼び出し
  var chnode = node.firstChild;
  setNode( chnode );
  node = node.nextSibling;
  setNode( node );
}
...
checkBrowser();
loadXmlData();
...