`

java script 读取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> 


运行,要在同一个路径下!
分享到:
评论

相关推荐

    用java读取xml文件的四种方法

    要读取XML文件,Java提供了多种方法。以下是四种常用的方法,每种都有其适用场景和特点: 1. **DOM解析器(Document Object Model)** DOM解析器将整个XML文件加载到内存中,创建一个树形结构,允许我们通过节点...

    用java读取修改xml文件的代码实现

    本文将详细介绍如何使用Java来读取和修改XML文件,主要涉及以下几个核心知识点: 1. **DOM解析器**: Document Object Model(DOM)是一种将XML文档转换为内存中的树形结构的方法,使得可以遍历和修改XML文件。...

    java读取xml文件

    Java 读取 XML 文件是 Java 开发中常见的一项任务,XML(eXtensible Markup Language)作为一种可扩展标记语言,广泛用于数据交换、配置存储等领域。本教程将深入讲解如何在 Java 中处理 XML 文件,同时涉及 XML 的 ...

    java递归读取xml文件

    本篇文章将深入探讨如何使用Java递归地读取XML文件。 首先,我们需要了解XML的基本结构。XML(eXtensible Markup Language)是一种标记语言,它的层次结构由元素(Element)、属性(Attribute)以及文本内容(Text ...

    JAVA高手解析XML配置文件的读取操作.pdf

    JAVA 高手解析 XML 配置文件的读取操作 本文主要讲解了 Java 中如何读取 XML 配置文件,并对 XML 解析器进行了分类,分别介绍了 DOM 和 SAX 两种解析方式的特点和使用场景,并提供了一个使用 SAX 解析器读取 XML ...

    Java读写xml,word,xml文件(防乱码)

    对于XML文件的读取,我们可以采用Java标准库中的`BufferedReader`配合`InputStreamReader`的方式来进行处理。这样可以在读取文件的同时指定正确的字符编码,从而避免乱码问题。 ```java import java.io....

    java读取本地xml文件信息

    在Java编程中,读取本地XML文件是常见的数据操作任务,尤其在处理配置信息、存储结构化数据或进行数据交换时。这篇博文链接虽然没有提供具体的内容,但我们可以通过一般的方法来详细讲解如何在Java中读取XML文件信息...

    java利用jdom读取xml文件

    JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理API,它提供了对XML文档结构的完整映射,使得我们可以方便地创建、读取和修改XML文件。下面将详细介绍如何使用JDOM来读取XML文件。 首先,...

    java读取XMl数据

    本文将深入探讨如何使用Java来读取XML数据。 首先,我们需要了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。每个XML文档都有一个根元素,其他元素则嵌套在根...

    java读取xml文件并存入数据库

    java从xml中读入数据并存入到sqlserver2005数据库中

    读取XML文件的四种方法

    在Java中,读取XML文件有多种方法,本文将介绍四种常见的方法:DOM、DOM4J、JDOM和SAX。 DOM(Document Object Model) DOM是W3C组织制定的XML文档对象模型,它提供了对XML文档的树形结构表示。使用DOM方法读取XML...

    java读取XML内容源代码

    在Java编程中,读取XML(eXtensible Markup Language)文件内容是一项常见的任务,尤其在处理配置数据、数据交换或者存储结构化信息时。XML因其可读性强、结构清晰的特点,被广泛应用于各种场景。本篇文章将详细介绍...

    java写XML文件和读取XML文件

    在Java编程中,处理XML文件是常见的需求,包括创建XML文件、读取XML文件以及解析XML内容。下面将详细介绍Java如何进行XML文件的操作。 一、Java写XML文件 1. 使用DOM(Document Object Model)API: DOM是W3C推荐...

    java读取xml文件生成文件

    Java语言在处理XML文件时,提供了丰富的API和库,使得我们可以轻松地读取、解析、修改和生成XML文档。在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明...

    Java远程读取XML文件相关

    ### Java远程读取XML文件及SOAP协议应用 #### 核心知识点概述 本文将深入探讨如何在Java中处理XML文件,特别是聚焦于远程读取XML文件的方法与实践,并结合SOAP协议进行具体阐述。 #### 一、Java处理XML文件的基础...

    java Swing 读取xml并导出Excel(密码:qiyh)

    java Swing 读取xml并导出Excel java Swing 读取xml并导出Excel

    java解析xml字符串

    Java提供了多种库来解析和操作XML文档,其中JDOM(Java Document Object Model)是一个广泛使用的开源库,它提供了简单且强大的API来读取、创建和修改XML文档。 ### Java解析XML字符串 在给定的代码示例中,我们...

    用java读取xml文件的四种方法.doc

    Java 读取 XML 文件的四种方法 在 Java 中读取 XML 文件有多种方法,本文将介绍四种常用的方法:DOM 实现方法、DOM4J 实现方法、JDOM 实现方法和SAX 实现方法。 DOM 实现方法 DOM(Document Object Model)是 W3C...

    用java读取txt文件和xml文件

    在Java编程语言中,读取文本文件(如.txt)和XML文件是常见的任务,这涉及到I/O操作和解析技术。下面我们将详细讲解如何使用Java来完成这些任务。 首先,我们来探讨如何用Java读取.txt文件。在Java中,我们可以使用...

Global site tag (gtag.js) - Google Analytics