<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文件进行读取和遍历,并将内容呈现在网页上。 首先,我们需要理解XML的基本概念。XML是一种自描述的、结构化的数据格式,用于存储和传输...
针对这一问题,"遍历XML文件内所有节点和属性"的非递归方法应运而生。 在描述中提到的“比递归调用的速度要快很多”,这通常是指通过迭代而非递归的方式遍历XML文档。递归方法会为每个节点创建新的函数调用栈,而当...
在IT领域,DOM(Document Object Model)是一种标准的表示XML和...5. 可能使用的工具或库(如jQuery、`xmldom`) 在实际项目中,理解并熟练运用这些概念能够帮助我们高效地处理XML数据,实现数据的动态操作和传输。
在IT领域,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作、事件处理、动画以及Ajax交互等任务。本文将详细讲解如何在jQuery 1.5版本中遍历XML节点属性,结合给定的资源——一个名为"test.html"的HTML...
这篇博客"JS操作XMLDOM(遍历和打印)"很可能探讨了如何利用JavaScript来处理XML数据,特别是遍历XML结构并将其打印出来。 XML是一种结构化数据格式,常用于存储和传输数据。在JS中,XMLDOM允许我们将XML文档转换为一...
8. 注意事项:由于微信小程序的运行环境限制,可能无法直接使用`DOMParser`,此时可以借助第三方库如`xmldom`,从`xmldom-master`这个压缩包来看,很可能包含了一个适用于小程序的XMLDOM实现。在引入这个库后,可以...
XMLDOM是微软提供的一个接口,它允许程序员通过JavaScript、VBScript或其他支持COM的编程语言来处理XML文档。这个接口为XML文档提供了结构化的表示,使得开发者可以轻松地读取、修改、创建和保存XML数据。XMLDOM是...
3. 优化遍历效率:尽量避免全局遍历DOM,可以使用`querySelector`或`querySelectorAll`定位目标节点集合并限制遍历范围。 4. 考虑性能:大量遍历DOM可能影响页面性能,尤其是在大数据量或频繁操作时。可以考虑使用...
本文将深入探讨如何使用JavaScript来遍历XML文档和处理JSON对象。 首先,让我们了解XML。XML是一种自描述性的标记语言,用于存储和传输结构化数据。在JavaScript中,我们通常使用`DOMParser`或`ActiveXObject`(IE...
这个"XMLDOM对象方法中文手册chm"提供了关于XML DOM在中文环境下的详细指南,对于理解和应用XML DOM技术至关重要。 1. **XML DOM基本概念** - DOM是一种与平台和语言无关的接口,它将XML文档解析为一个树形结构,...
本文将介绍五种使用JavaScript进行DOM先序遍历的方法。 1. 使用DOM1中的基础接口递归遍历 这种方法是递归遍历DOM树的传统方式。核心思路是先处理当前节点,然后递归地处理它的每一个子节点,直到所有节点都被访问过...
本文将深入探讨如何使用JavaScript遍历DOM对象的所有属性。 首先,我们要明确一个基本概念:DOM对象是JavaScript中对HTML元素的抽象表示。例如,在提供的示例中,`()">` 是HTML中的一个按钮元素,它在JavaScript中...
在JavaScript中,我们可以使用DOM API来遍历、修改和创建XML文档。 2. **XML解析** 在JavaScript中,有多种方式解析XML文档,例如`DOMParser`和`ActiveXObject`(仅限IE)。`DOMParser`是现代浏览器广泛支持的方法...
此外,由于DOM是平台和语言中立的,因此无论你是使用JavaScript、Java、Python还是其他编程语言,都可以利用DOM来处理XML文档。 总之,XML DOM是一个强大的标准,它为处理XML文档提供了一个统一的框架,使得开发...
本文主要探讨了如何使用jQuery以及JavaScript原生方法来遍历XML文件中的节点和属性,并给出了一个具体的实现示例。 首先,我们需要了解jQuery如何加载XML文件。在示例中,通过AJAX调用jQuery的$.get方法从服务器...
7. **XMLHttpRequest和AJAX**:在Web开发中,XML通常用于异步数据交换,通过XMLHttpRequest对象发送请求获取XML数据,然后使用DOM解析和操作这些数据,实现AJAX(Asynchronous JavaScript and XML)技术。...
这段代码首先创建了一个`Microsoft.XMLDOM`对象,然后设置异步加载为false,确保文件在进行任何操作前已经完全加载。接着,`load()`方法用于加载XML文件。一旦文件加载完成,我们可以通过`documentElement`获取XML...
XMLDOM提供了对XML节点的遍历、创建、修改和删除等操作。在JavaScript中,XMLHttpRequest对象可以用来加载XML文档,然后通过XMLDOM解析并操作XML数据,常用于数据交换和服务器通信。 **CSS** (Cascading Style ...