在网上找到一篇javascript读取xml数据很详细的文章,特转到自己博客中,一来同大家分享,二来留作资料参考!..........
///////////////////////////////////////////
首先:xml文件(tree.xml)内容如下:
<?xml version="1.0" encoding="gb2312"?>
<treeview>
<tree id="p1">
<text>山东省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id="p1-1">
<text>威海市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
</tree>
<tree id="p1-2">
<text>烟台市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id="p1-2-1">
<text>长夼村</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<node id="p1-3">
<text>富镇</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<tree id="p2">
<text>河北省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id="p2-1">
<text>泊头市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id="p2-1-1">
<text>郊河</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<tree id="p2-2">
<text>石家庄</text>
<target>_blank</target>
<title>城市</title>
<link></link>
</tree>
</tree>
<tree id="p3">
<text>浙江省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id="p3-1">
<text>杭州市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id="p3-1-1">
<text>某镇</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<tree id="p3-2">
<text>温州市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id="p3-2-1">
<text>某镇</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
</tree>
</treeview>
//////////////////////////////////////////////////////
然后:javascript函数实现:(文件名称:tree.htm)
<script Language="JavaScript">
var HTML = "";
var space = "";
var blank = " ";
function getSubject()
{
var xmlDoc;
if(window.ActiveXObject)
{
//获得操作的xml文件的对象
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load("tree.xml");
if(xmlDoc == null)
{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/Index.aspx';
return;
}
}
//解析xml文件,判断是否出错
if(xmlDoc.parseError.errorCode != 0)
{
alert(xmlDoc.parseError.reason);
return;
}
//获得根接点
var nodes = xmlDoc.documentElement.childNodes;
//得到根接点下共有子接点个数,并循环
for(var i=0; i<nodes.length; i++)
{
//如果接点名为 tree
if(nodes(i).nodeName == "tree")
{
readTree(nodes(i));
}
//如果接点名为 node
else if(nodes(i).nodeName == "node")
{
readNode(nodes(i));
}
}
//删除对象
delete(xmlDoc);
//显示HTML
window.show.innerHTML = HTML;
return;
}
//读Tree节点
function readTree(cI)
{
var nodes = cI.childNodes;
var menuHTML = space;
menuHTML += blank;
//得到超级链接
menuHTML += "<a href='";
//如果该节点的连接属性不为空,则连接
if(cI.selectNodes("link")(0).text != "")
{
menuHTML += cI.selectNodes("link")(0).text;
}
//否则为空链接
else
{
menuHTML += "#";
}
//目标
if(cI.selectNodes("target")(0).text != "")
{
menuHTML += " target='"+cI.selectNodes("target")(0).text;
menuHTML += "'";
}
//点击菜单事件,调用divshow(vid)函数
menuHTML += " onclick=javascript:divshow('"+cI.getAttribute("id")+"');";
//得到节点标题
menuHTML += " title='";
menuHTML += cI.selectNodes("title")(0).text;
//结束
menuHTML += "'>";
//得到节点的正文
menuHTML += cI.selectNodes("text")(0).text;
menuHTML += "</a><br>\n";
//将menuHTML设置添加到HTML字符串
HTML += menuHTML;
//得到该节点的属性值<span
HTML += "<div id='"+cI.getAttribute("id")+"' style='display:none'>\n";
for(var i=0; i<nodes.length; i++)
{
var tempImg = "";
tempImg += blank;
if(nodes(i).nodeName == "tree")
{
space += tempImg;
readTree(nodes(i));
space = "";
}
else if(nodes(i).nodeName == "node")
{
space += tempImg;
readNode(nodes(i));
}
}
HTML += "</div>\n";
return;
}
//读Node节点
function readNode(cI)
{
var nodeHTML = space;
nodeHTML += blank;
//设置超级链接
nodeHTML += "<a href='";
//得到连接地址
nodeHTML += cI.selectNodes("link")(0).text;
//目标
if(cI.selectNodes("target")(0).text != "")
nodeHTML += "' target='"+cI.selectNodes("target")(0).text;
//得到节点标题
nodeHTML += "' title='";
nodeHTML += cI.selectNodes("title")(0).text;
//结束
nodeHTML += "'>";
//得到节点的正文
nodeHTML += cI.selectNodes("text")(0).text;
nodeHTML += "</a><br>\n";
HTML += nodeHTML;
//HTML += "<div id='"+cI.getAttribute("id")+"'>";
space = "";
return;
}
//操作对象的显示还是隐藏效果
function divshow(vid)
{
if(document.all[vid].style.display == "none")
{
document.all[vid].style.display = "block";
}
else
{
document.all[vid].style.display = "none";
}
return;
}
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JS_XML</title>
<style type="text/css">
<!--
body
{
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
font-size: 9pt;
}
A
{
text-decoration:none;
font-family: "宋体";
font-size: 9pt;
COLOR:#000000;
}
-->
</style>
</head>
<body bgcolor="#EEEEEE" leftmargin="0" topmargin="0">
<div id=show></div>
</body>
<script>
getSubject()
</script>
</html>
运行,要在同一个路径下!
分享到:
相关推荐
### JavaScript读取XML文件的方法详解 #### 一、引言 在现代Web开发中,XML(可扩展标记语言)作为一种轻量级的数据交换格式,在早期的Web应用中扮演着重要的角色。JavaScript作为前端的主要编程语言之一,具备强大...
### JavaScript读取XML文件知识点详解 #### 一、XML与JavaScript简介 - **XML (Extensible Markup Language)**:一种标记语言,类似于HTML,用于存储和传输数据。它被设计成具有自描述性,使得数据在不同系统间...
总结来说,JavaScript读取XML的基本流程包括: 1. 创建或获取XML文档对象,例如通过`new ActiveXObject("Microsoft.XMLDOM")`(在旧版IE中)或`new DOMParser().parseFromString(xmlString, "text/xml")`(在现代...
以下是一些关于如何在JavaScript中读取XML文件的关键知识点: 1. **DOM解析XML**: - 当XML文件在浏览器环境中加载时,浏览器会自动构建一个DOM树。JavaScript可以通过`document.implementation.createDocument()`...
结合以上步骤,一个简单的JavaScript读取XML文件的示例代码如下: ```html <!DOCTYPE html> <title>JavaScript读取XML示例 var xhr = new XMLHttpRequest(); xhr.open('GET', 'yourfile.xml', true); ...
JavaScript读取XML文件内容的过程就是这样,这涉及到异步请求、XML解析以及DOM操作。这个过程对于Web开发者来说是必不可少的技能,特别是在处理需要与服务器交换数据的应用中。理解并熟练掌握这些技术,将有助于构建...
JavaScript 用于读取 XML 文件和解析节点数据是一个常见的任务,特别是在构建动态网页和Web应用程序时。在提供的代码中,我们看到一个使用 AJAX (Asynchronous JavaScript and XML) 的简单实现,来从服务器请求并...
JavaScript 用于读取 XML 文件和解析节点数据是Web开发中常见的任务,特别是在处理异步数据交换时。在提供的代码段中,我们看到一个简单的 AJAX(Asynchronous JavaScript and XML)请求被用来从服务器获取一个 XML ...
本文将详细介绍如何使用JavaScript读取XML文件以及如何获取文件中的特定内容。 #### JavaScript与XML交互基础 1. **创建XMLHttpRequest对象**: - 首先,需要创建一个`XMLHttpRequest`对象来发送HTTP请求。这个...
本篇文章将深入探讨如何使用jQuery来读取XML,并通过实例详细解析相关知识点。 一、jQuery.parseXML()函数 在jQuery中,首先我们需要将XML字符串转换为XML DOM对象。这可以通过使用`jQuery.parseXML()`函数来实现...
在这段关于“javascript 读取XML数据,在页面中展现、编辑、保存的实现”的内容中,所涉及的关键知识点可以拆解如下: 1. **XML数据的展现**:提到要在页面上通过表格显示XML文件中的内容,这涉及到将XML数据解析后...
总结起来,"JavaScript读取XML节点生成多级菜单"这个任务涉及到XML解析、DOM操作、事件处理、CSS样式和性能优化等多个方面。通过这些知识点,我们可以构建出一个功能完整、交互友好的多级菜单系统。在实际开发中,还...
**Ajax读取XML数据类型详解** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。在这个例子中,我们将...
在JavaScript中读取XML数据,我们可以使用`XMLHttpRequest`对象或者现代浏览器提供的`fetch` API。首先,创建一个HTTP请求到服务器获取XML文件,然后解析XML文档,提取所需的数据。 对于XML的解析,JavaScript提供...
在这个场景中,我们将关注HTML5如何读取XML数据,并利用这些数据在Canvas上进行绘图。 首先,让我们了解HTML5中的XMLHttpRequest对象。这是一个异步通信接口,允许JavaScript在不刷新整个页面的情况下与服务器交换...
总的来说,通过JavaScript读取XML文件需要异步加载XML数据,然后使用DOM解析XML字符串。在实际项目中,还可以考虑使用jQuery、axios等库来简化XML处理。同时,理解XML和DOM的概念对于JavaScript开发者来说是非常重要...
描述中强调了本内容是介绍如何通过JavaScript来读取XML文件,并将其中的数据以表格的形式在网页上展示出来。这个过程涵盖了对XML节点的操作技巧以及HTML表格的创建与操作技巧。尤其在操作技巧方面,提及了对不同...
在JavaScript中,读取XML...以上就是使用JavaScript读取XML文件并生成树形结构的基本步骤。实际应用中,可能还需要考虑错误处理、优化性能以及更复杂的树结构显示。了解这些基本原理后,你可以根据需求进行扩展和定制。
在JavaScript中获取XML文件的数据是一项常见的任务,尤其在前端开发中,当需要处理服务器返回的XML数据时。本文将深入探讨如何使用JavaScript来解析和操作XML文件,以便从中提取所需的信息。 首先,我们需要理解XML...
本文档主要介绍如何使用JavaScript读取XML文件中的节点数据,具体知识点包括: 1. 使用AJAX技术:AJAX(Asynchronous JavaScript And XML)技术允许页面与服务器进行异步通信,从而可以实现无需重新加载整个页面...