본문 바로가기
javascript

javascript rss xml 파싱

by 새로운 도전을 위한 한걸음 2015. 5. 10.

var req;

 function getCustomerInfo() {
  var targetXmlURL = "http://blog.rss.naver.com/qmffjem09.xml";
 
  if(window.XMLHttpreq) {
      try { req = new XMLHttpreq();
      } catch(e) { req = false; }
    } else if(window.ActiveXObject) {
      try { req = new ActiveXObject('Msxml2.XMLHTTP');
      } catch(e) {
      try { req = new ActiveXObject('Microsoft.XMLHTTP');
      } catch(e) { req = false; }
    }
  }
    if(req) {
      req.onreadystatechange = updatePage;
      req.open('POST', targetXmlURL, true);
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.send('');
  }
 }

 function updatePage() {
  if (req.readyState == 4){

   if (req.status == 200) {// OK response

    //alert(req.responseText)
   
    var xml = new rssXmlParser(req.responseXML);   
    
    alert(xml.image["url"])
    alert(xml.item[0]["title"])
            
          
   }else{
    alert(req.statusText);
   }
  }
 }

 

 

/*rssXmlParser by young tai kim
 * last change: 15.04.2009
 * 사용방법.
 * var xmlDoc = new rssXmlParser(req.responseXML);
 * xmlDoc["title"] ;
 * xml.item[0]["title"]
*/

function rssXmlParser(xml){
 //node
 var getNode =function (obj, tag){
  return obj.getElementsByTagName(tag)[0];
 }
 
 //node value
 var getValue = function (obj){
  try{
   return obj.firstChild.nodeValue;
  } catch(e){
   return null;
  }
 }
 //node item
 var getItem = function (obj){
  var item = new Object();
  var objLength = obj.childNodes.length;
  
  for(var j =0;j <objLength ; j++){
   var eleItem = obj.childNodes[j];
   item[eleItem.nodeName] =getValue(eleItem);
  }
  return item;
 }

 var xmlParseData = new Object();
 var item_list = new Array();
 var channel = getNode(xml, "channel");
 var channelLength = channel.childNodes.length;
 
 for(var i =0;i <channelLength ; i++){
  
  var sNode = channel.childNodes[i];

  if(sNode.childNodes.length >1){
   var pData = getItem(sNode);
   
   if(sNode.nodeName== "image"){
    xmlParseData.image = pData;
   }else{
    item_list.push(pData);
   }
  }else{
   xmlParseData[sNode.nodeName] =getValue(sNode);
  }
  
 }
 xmlParseData.item = item_list;

 return xmlParseData;

}