`

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,word,xml文件(防乱码)

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

    Xml.zip_JAVA读取xml_XML读取_java_saxreader

    Java作为一种强大的编程语言,提供了多种方式来读取和操作XML文档,其中包括DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)。本教程将重点介绍如何使用SAXReader在Java中...

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

    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文件自制工具类

    用WC3的DOM实现对XML文件的读取。 方法摘要: //通过文件路径及文件名读取xml public XMLReader(String path, String filename); //初始化读取包下的的XML文件 public XMLReader(Package package1, String fileName)...

    java读取xml文件导入到mysql数据库中

    xml文件导入到mysql数据库中,包括文件:ConnectionUtils.java,InsertDT.java,db_mysql.properties,test01.xml,需要的jar包dom4j-1.6.1.jar,mysql-connection-java-3.1.1.3-bin.jar,jaxen-1.1-beta-7.jar

    简单java读取xml示例

    本文将深入讲解StAX的基本概念、工作原理以及如何在Java中实现XML的读取。 1. **StAX概述** StAX(Streaming API for XML)是一种基于事件的XML解析API,它允许开发者逐个处理XML文档中的元素和属性,而不是一次性...

    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 读取XML

    java xml操作 博文链接:https://11lingxian.iteye.com/blog/123962

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

    Java 读取 XML 文件的四种方法 在 Java 中读取 XML 文件有多种方法,本文将介绍四种常见的方法,分别使用 DOM、DOM4J、JDOM 和 SAX 解析器。 第一种方法:使用 DOM DOM(Document Object Model)是一种树形结构,...

    java读取xml文件demo

    java实现的一个读取本地xml文件的例子,进入正题: 需要的包jdom2-2.0.6.jar:下载地址,http://mvnrepository.com/artifact/org.jdom/jdom2 此例子比较简单

Global site tag (gtag.js) - Google Analytics