`
xwhoyeah
  • 浏览: 91305 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

使用 javascript 遍历 xmlDom

阅读更多
<html>
<header><title>使用 javascript 遍历 xmlDom.</title></header>
<body>
<textarea id='log1' rows='20' cols='150'>
<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4">
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <a/><b>ssssssss</b>
  </welcome-file-list>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <a/><b>ssssssss<a/><b>ssssssss</b></b>
  </welcome-file-list>		
</web-app>
</textarea>
<br><button onclick="parse1()"> parse1 </button>  
<button onclick="parse2()"> parse2 </button>
<br>
<textarea id='log2' rows='20' cols='150'></textarea>

<SCRIPT   LANGUAGE=javascript>
function parse1(){
  var xml = "";
  var xmlDoc = new   ActiveXObject("Microsoft.XMLDOM");
  var rootNode;
  //xmlDoc.load("a.xml");
  xmlDoc.loadXML( document.getElementById('log1').value );
  if(xmlDoc.readyState==4){
    if(xmlDoc.parseError.errorCode!=0){
      alert(xmlDoc.parseError.reason)
    } else {   
      rootNode = xmlDoc.documentElement;   
      xml = '';
      xml = scanXml(rootNode, xml, 0);
      document.getElementById('log2').value += "\n-----------\n";
      document.getElementById('log2').value += xml;
    }
  }
  return xml;
}

function parse2(){
  var xml = "";
  var xmlDoc = new   ActiveXObject("Microsoft.XMLDOM");
  var rootNode;
  //xmlDoc.load("a.xml");
  xmlDoc.loadXML( document.getElementById('log1').value );
  if(xmlDoc.readyState==4){
    if(xmlDoc.parseError.errorCode!=0){
      alert(xmlDoc.parseError.reason)
    } else {   
      rootNode = xmlDoc.selectSingleNode('web-app/welcome-file-list');
      xml = '';
      xml = scanXml(rootNode, xml, 0);
      document.getElementById('log2').value += "\n-----------\n";
      document.getElementById('log2').value += xml;
    }
  }
  return xml;
}

function nSpace( n ){
  var space ="";
  for(var i=0; i< n; i++){
    space += "--";
  }
  return space;
}   

function   scanXml(xmlNode, xml, level){
  var currXml = '';
  var currLevel = level + 1;  
  //alert( xmlNode.nodeType + ":" + xmlNode.nodeName );
  //nodeType 此属性只读且传回一个数值。有效的数值符合以下的型别: 
  switch( xmlNode.nodeType ){
    case 1: //-ELEMENT
      currXml += "\n" + nSpace( level ) + "<" + xmlNode.nodeName + ">";
      if(xmlNode.hasChildNodes()){
        var   nodeList   =   xmlNode.childNodes;
          for(var   i=0;i<nodeList.length;i++){
            currXml = scanXml(nodeList[i], currXml, currLevel);
          }
      }
      currXml += "\n" + nSpace( level ) + "</" + xmlNode.nodeName + ">";
      break;
    case 2: break;//-ATTRIBUTE 
    case 3: //-TEXT      
      currXml = "\n" + nSpace( level ) + xmlNode.nodeValue;
      break;
    case 4: break;//-CDATA 
    case 5: break;//-ENTITY REFERENCE 
    case 6: break;//-ENTITY 
    case 7: break;//-PI (processing instruction) 
    case 8: break;//-COMMENT 
    case 9: break;//-DOCUMENT 
    case 10: break;//-DOCUMENT TYPE 
    case 11: break;//-DOCUMENT FRAGMENT 
    case 12: break;//-NOTATION 
    default:
  }
  return xml + currXml;
}
</SCRIPT>  
</body>
</html>
分享到:
评论

相关推荐

    使用javascript遍历XML文件并显示

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

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

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

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

    在IT领域,DOM(Document Object Model)是一种标准的表示XML和...5. 可能使用的工具或库(如jQuery、`xmldom`) 在实际项目中,理解并熟练运用这些概念能够帮助我们高效地处理XML数据,实现数据的动态操作和传输。

    jQuery 1.5 遍历xml节点属性

    在IT领域,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作、事件处理、动画以及Ajax交互等任务。本文将详细讲解如何在jQuery 1.5版本中遍历XML节点属性,结合给定的资源——一个名为"test.html"的HTML...

    JS操作XMLDOM(遍历和打印)

    这篇博客"JS操作XMLDOM(遍历和打印)"很可能探讨了如何利用JavaScript来处理XML数据,特别是遍历XML结构并将其打印出来。 XML是一种结构化数据格式,常用于存储和传输数据。在JS中,XMLDOM允许我们将XML文档转换为一...

    xmldom.zip

    8. 注意事项:由于微信小程序的运行环境限制,可能无法直接使用`DOMParser`,此时可以借助第三方库如`xmldom`,从`xmldom-master`这个压缩包来看,很可能包含了一个适用于小程序的XMLDOM实现。在引入这个库后,可以...

    Microsoft_XMLDOM帮助

    XMLDOM是微软提供的一个接口,它允许程序员通过JavaScript、VBScript或其他支持COM的编程语言来处理XML文档。这个接口为XML文档提供了结构化的表示,使得开发者可以轻松地读取、修改、创建和保存XML数据。XMLDOM是...

    .遍历DOM元素

    3. 优化遍历效率:尽量避免全局遍历DOM,可以使用`querySelector`或`querySelectorAll`定位目标节点集合并限制遍历范围。 4. 考虑性能:大量遍历DOM可能影响页面性能,尤其是在大数据量或频繁操作时。可以考虑使用...

    js遍历xml,json学习

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

    XMLDOM对象方法中文手册chm

    这个"XMLDOM对象方法中文手册chm"提供了关于XML DOM在中文环境下的详细指南,对于理解和应用XML DOM技术至关重要。 1. **XML DOM基本概念** - DOM是一种与平台和语言无关的接口,它将XML文档解析为一个树形结构,...

    javascript先序遍历DOM树的方法

    本文将介绍五种使用JavaScript进行DOM先序遍历的方法。 1. 使用DOM1中的基础接口递归遍历 这种方法是递归遍历DOM树的传统方式。核心思路是先处理当前节点,然后递归地处理它的每一个子节点,直到所有节点都被访问过...

    JavaScript简单遍历DOM对象所有属性的实现方法

    本文将深入探讨如何使用JavaScript遍历DOM对象的所有属性。 首先,我们要明确一个基本概念:DOM对象是JavaScript中对HTML元素的抽象表示。例如,在提供的示例中,`()"&gt;` 是HTML中的一个按钮元素,它在JavaScript中...

    javascript 操作xml_dom对象整理集合

    在JavaScript中,我们可以使用DOM API来遍历、修改和创建XML文档。 2. **XML解析** 在JavaScript中,有多种方式解析XML文档,例如`DOMParser`和`ActiveXObject`(仅限IE)。`DOMParser`是现代浏览器广泛支持的方法...

    XML DOM教程

    此外,由于DOM是平台和语言中立的,因此无论你是使用JavaScript、Java、Python还是其他编程语言,都可以利用DOM来处理XML文档。 总之,XML DOM是一个强大的标准,它为处理XML文档提供了一个统一的框架,使得开发...

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

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

    XML DOM 教程

    7. **XMLHttpRequest和AJAX**:在Web开发中,XML通常用于异步数据交换,通过XMLHttpRequest对象发送请求获取XML数据,然后使用DOM解析和操作这些数据,实现AJAX(Asynchronous JavaScript and XML)技术。...

    IE下使用XML DOM解析XML文件(ASP.NET Web)

    这段代码首先创建了一个`Microsoft.XMLDOM`对象,然后设置异步加载为false,确保文件在进行任何操作前已经完全加载。接着,`load()`方法用于加载XML文件。一旦文件加载完成,我们可以通过`documentElement`获取XML...

    JavaScript&DHTML&CSS中文版参考大全【附:XMLDom.chm】.rar

    XMLDOM提供了对XML节点的遍历、创建、修改和删除等操作。在JavaScript中,XMLHttpRequest对象可以用来加载XML文档,然后通过XMLDOM解析并操作XML数据,常用于数据交换和服务器通信。 **CSS** (Cascading Style ...

Global site tag (gtag.js) - Google Analytics