`
zengjinliang
  • 浏览: 306837 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript遍历XML

阅读更多


<script language="JavaScript" type="text/javascript">
var xmlFile="http://xling.blueidea.com/rss2.xml";

var createXMLDom=function(){
  if (window.ActiveXObject)
   var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
  else
   if (document.implementation&&document.implementation.createDocument)
    var xmldoc=document.implementation.createDocument("","doc",null);
  xmldoc.async = false;
  //为了和FireFox一至,这里不能改为False;
  xmldoc.preserveWhiteSpace=true;
  return xmldoc;
}

var createXMLHttp=function(){
  var xmlHttp;
  if (window.ActiveXObject){
   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }else{
   xmlHttp=new XMLHttpRequest();
  }
  return xmlHttp;
}


//-----------------------------------------------------------------------------
//加载XML文件。
var xmlDom=createXMLDom();
try{
  xmlDom.load(xmlFile);
}catch(e){
  var xmlHttp=createXMLHttp();
   xmlHttp.onreadystatechange = function(){
    if(xmlHttp.readyState == 4){
     xmlDom=xmlHttp.responseXML;
    }else{
     //window.state="XML文件加载中...";
    }
   } 
   xmlHttp.open("GET",xmlFile,false);
   xmlHttp.send(null);
}
var DOMRoot=xmlDom.documentElement;
//取出指定节点的属性。
var getDOMAtt=function(pNode,pAttribute){
  try{
   return pNode.attributes.getNamedItem(pAttribute).nodeValue;
  }catch(e){
   //alert("指定节点不存在,或指定属性:"+pAttribute+" 不存在!")
   return false;
  }
 
}

var attList=function(pNode){
  if(pNode.nodeType == 4) return '';
  var oAtt,tmpString="[ ";
  try{
   for(var i=0;oAtt=pNode.attributes[i];i++){
    tmpString+=oAtt.nodeName+" = '" + oAtt.nodeValue+"' ";
   }
   tmpString+=" ]"
   return tmpString;
  }catch(e){ return ''}
}

var getNodeName = function(pNode){
  if(pNode.nodeType == 4) return '';
  return pNode.nodeName;
}

var getNodeValue = function(pNode){
  try{
   return " : " + pNode.firstChild.nodeValue;
  }catch(e){return ''}
}

var nbsp=function(pNum){
  var tmpString=""
  for(var i=0;i<pNum;i++){
   tmpString+=" "//这里是全角的空格
  }
  return tmpString;
}

var switchTree=function(pNode,pLevel){
  var tNode,i;
  for(i=0;tNode=pNode.childNodes[i];i++){
   if(tNode.nodeType==3) continue;//因为preserveWhiteSpace等于true
   document.write(nbsp(pLevel),"<font color='blue'><b>",getNodeName(tNode),"</b></font><font color='red'>",attList(tNode),"</font>",getNodeValue(tNode),"<br />");
   switchTree(tNode,pLevel+1);
  }
}

switchTree(DOMRoot,2)
</script>
</html>
分享到:
评论

相关推荐

    使用javascript遍历XML文件并显示

    这篇博客“使用javascript遍历XML文件并显示”探讨了如何利用JavaScript对XML文件进行读取和遍历,并将内容呈现在网页上。 首先,我们需要理解XML的基本概念。XML是一种自描述的、结构化的数据格式,用于存储和传输...

    遍历XML文件内所有节点和属性

    针对这一问题,"遍历XML文件内所有节点和属性"的非递归方法应运而生。 在描述中提到的“比递归调用的速度要快很多”,这通常是指通过迭代而非递归的方式遍历XML文档。递归方法会为每个节点创建新的函数调用栈,而当...

    jQuery 1.5 遍历xml节点属性

    在jQuery 1.5中,遍历XML节点属性主要通过以下方法实现: 1. **jQuery.parseXML()**:这是jQuery提供的一个静态方法,用于将XML字符串解析为DOM对象。例如: ```javascript var xmlString = "&lt;root&gt;&lt;node attr1='...

    js遍历xml,json学习

    本文将深入探讨如何使用JavaScript来遍历XML文档和处理JSON对象。 首先,让我们了解XML。XML是一种自描述性的标记语言,用于存储和传输结构化数据。在JavaScript中,我们通常使用`DOMParser`或`ActiveXObject`(IE...

    dom遍历所有xml节点,并且重新生成xml

    在本主题“DOM遍历所有XML节点,并且重新生成XML”中,我们将深入探讨如何利用DOM API遍历XML文档的所有节点,并根据需求重新构建XML文档。 首先,让我们了解XML的基本结构。XML(eXtensible Markup Language)是一...

    JAVASCRIPT加载XML文档及操作XML文档的方法[归类].pdf

    - DOM提供了一套API,允许JavaScript遍历XML树,访问、插入和删除节点。 - `getElementsByTagName()`, `getElementById()`, `getAttribute()`, `childNodes`, `parentNode`等方法是常用的DOM操作方法。 4. **XML...

    jQuery实现遍历XML节点和属性的方法示例

    本文主要探讨了如何使用jQuery以及JavaScript原生方法来遍历XML文件中的节点和属性,并给出了一个具体的实现示例。 首先,我们需要了解jQuery如何加载XML文件。在示例中,通过AJAX调用jQuery的$.get方法从服务器...

    JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)

    - 在创建表格过程中,首先初始化表格头(标签),然后遍历XML文档的节点来填充表格数据。 4. 兼容性考虑: - 示例中提到了IE和火狐(Firefox)浏览器,这意味着代码在编写时需要考虑到不同浏览器对XMLHttpRequest...

    javascript 操作xml的所有属性事件方法和实例

    3. 遍历XML树: - `childNodes`:获取所有子节点。 - `firstChild` 和 `lastChild`:获取第一个和最后一个子节点。 - `nextSibling` 和 `previousSibling`:获取当前节点的下一个和上一个兄弟节点。 三、XML事件...

    javascript 对xml文件解析

    ### JavaScript 对 XML 文件解析知识点详解 #### 一、XML 文件解析背景及意义 XML(Extensible Markup Language,可扩展标记语言)是一种用于标记数据的语言,主要用于传输和存储数据。在 Web 开发中,XML 常被...

    xml.rar_javascript_javascript xml_xml javascript_xml文件

    DOM是将XML文档转化为一个树形结构,每个元素、属性、文本等都表示为树上的一个节点,通过遍历这个树来访问和修改XML内容。而SAX则是一种事件驱动的解析方式,它逐行读取XML文件,当遇到某个元素、属性时触发相应的...

    Javascript读取XML

    它同样根据点号分隔的路径遍历XML文档,但当找到目标节点时,如果该节点没有子节点,就直接返回其文本内容。 在`AddTb`函数中,XML文档被加载并用这两个函数解析,然后将解析出的数据填充到HTML表格中。这展示了...

    XML文档遍历详细代码

    本篇文章将深入探讨如何使用JavaScript DOM(Document Object Model)来遍历XML文档,通过具体的详细代码实现,帮助开发者更好地理解和掌握这一技术。 在JavaScript中,XML文档可以通过DOM接口进行解析和操作。DOM...

    ajax遍历xml文档的方法

    AJAX遍历XML文档的方法涉及到了几个关键技术点,包括AJAX技术、XMLHttpRequest对象、XML文档以及W3C DOM方法。 首先,AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个页面的情况下,能够更新部分...

    javascript对xml的处理

    在JavaScript中,XML DOM(Document Object Model)提供了一组接口,用于创建、修改和遍历XML文档。例如,你可以使用`DOMParser`对象将XML字符串解析为DOM树: ```javascript let xmlString = '&lt;root&gt;&lt;item id="1"&gt;...

    JavaScript解析XML文件,在网页上以目录树的形式显示

    6. **遍历XML树**:一旦得到`Document`对象,可以使用`getElementsByTagName`,`childNodes`,`firstChild`,`nextSibling`等方法遍历XML树,找到需要的数据。 7. **创建HTML Tree**:将解析出的XML结构转换为HTML...

Global site tag (gtag.js) - Google Analytics