现在的位置: 首页 > 综合 > 正文

js讀取xml節點

2012年10月10日 ⁄ 综合 ⁄ 共 2452字 ⁄ 字号 评论关闭

9.1.1 test.xml 文件内容
<?xml version="1.0" encoding="UTF-8"?>
<body>
 <element>
  <title>title 1</title>
  <content>content 1</content>
 </element>
 <element>
  <title>title 2</title>
  <content>content 2</content>
 </element>
 <element>
  <title>title 3</title>
  <content>content 3</content>
 </element>
 <element>
  <title>title 4</title>
  <content>content 4</content>
 </element>
 <element>
  <title></title>
  <content></content>
 </element>
 <element>
  <title>title 6</title>
  <content></content>
 </element>
 <element>
  <title></title>
  <content>content 7</content>
 </element>
</body>

9.1.2 html 文件内容
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>shawl.qiu template</title>
<script type="text/javascript">
//<![CDATA[
 function fLoadXml(url, show){
  switch(fCkDom2()){
   case 1:
    var xml=document.implementation.createDocument('','',null);
     xml.onload = function(){show(xml, url);}
     xml.load(url);
    break;
   case 2:
    var xml=new ActiveXObject('microsoft.xmldom');
     xml.onreadystatechange=function(){
      if(xml.readyState==4){
       show(xml, url);
      }
     }
     xml.load(url);
    break;
   default: document.write('unknown');
  }
  
  function fCkDom2(){
   if(document.implementation&&document.implementation.createDocument)return 1;
   else if(window.ActiveXObject) return 2;
   else return 0;
  }
 }
 
 function fShowXml(xml, url){
  //alert('ok');
  var elements=xml.getElementsByTagName('element');
   for(var i=0; i<elements.length; i++){
    //alert(elements[i].nodeName);
    var div=document.createElement('div');
    var br=document.createElement('br');
    var hr=document.createElement('hr');
    
    //div.appendChild(document.createTextNode(elements[i].nodeName+' '+i));
    div.innerHTML=(elements[i].nodeName+' '+i).fontcolor('red');
    
    //alert(element[i].childNodes.length);
    for(var j=0; j<elements[i].childNodes.length; j++){
     if(elements[i].childNodes[j].nodeType==1){
      var eSub=elements[i].childNodes[j]
      var p=document.createElement('p');
      var content;
      
  /*      p.appendChild(document.createTextNode(eSub.nodeName+': '+
       eSub.firstChild.data)); */
       try{
        content=eSub.firstChild.data.fontcolor('blue');
       } catch(e){
        content='empty';
       }
       p.innerHTML=eSub.nodeName.bold()+': '+content.fontcolor('blue');
       div.appendChild(p);
     }
    } 
    
    div.appendChild(hr);
    document.body.appendChild(div);
   }
  //alert(document.body.innerHTML);
 }
//]]>
</script>
</head>
<body onload="fLoadXml('test.xml', fShowXml);">
</body>
</html>

 

抱歉!评论已关闭.