[解析XML的步骤如下: 1.创建DocumentBuilder工厂 2.创建DocumentBuilder对象 3.DocumentBuilder对象的parse方法得到Document对象 4.Document对象的getElementsByTagNa
首先:xml文件(tree.xml)内容如下:
山东省
_blank
省份威海市
_blank
城市烟台市
_blank
城市长夼村
_blank
乡镇http://www.baidu.com/
富镇
_blank
乡镇http://www.baidu.com/
河北省
_blank
省份泊头市
_blank
城市郊河
_blank
乡镇http://www.baidu.com/
石家庄
_blank
城市浙江省
_blank
省份杭州市
_blank
城市某镇
_blank
乡镇http://www.baidu.com/
温州市
_blank
城市某镇
_blank
乡镇http://www.baidu.com/
//
然后:javascript函数实现:(文件名称:tree.htm)
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;
//得到根接点下共有子接点个数,[ 简单的java读取xml文件方法(相对路径的xml文件),,分为两种: 一种是简单的键值对的xml文件, 通过Properties读取;一种是普通的xml文件, 此处使用dom4j读取 一.简单的并循环
for(var i=0; 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 += " οnclick=javascript:divshow('"+cI.getAttribute("id")+"');";
menuHTML += cI.selectNodes("title")(0).text;
menuHTML += cI.selectNodes("text")(0).text;
\n";
//将menuHTML设置添加到HTML字符串
HTML += menuHTML;
//得到该节点的属性值
HTML += "
for(var i=0; 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 += "
return;
}
//读Node节点
function readNode(cI)
{
var nodeHTML = space;
nodeHTML += blank;
//设置超级链接
nodeHTML += "";
//得到节点的正文
nodeHTML += cI.selectNodes("text")(0).text;
nodeHTML += "
\n";
HTML += nodeHTML;
//HTML += "
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;
}
JS_XMLgetSubject()
运行,要在同一个路径下!
[package com.plas.util;import java.io.FileWriter;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;import org.jdom.