会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
txw100
淘包岛
同行网,同行你我他
不要去想前面的路有多么的遥远,艰难,或者有没有路,坚持一直走下去吧。
博客园
首页
新随笔
联系
订阅
管理
java DOM解析XML(2) 树
//=======a.xml===================
<?
xml version="1.0" encoding="GB2312"
?>
<
people
>
<
person
personID
="1"
>
<
name
>
CY
</
name
>
<
age
>
22
</
age
>
<
address
>
武汉
</
address
>
</
person
>
<
person
personID
="2"
>
<
name
>
SUN
</
name
>
<
age
>
18
</
age
>
<
address
>
襄樊
</
address
>
</
person
>
<
person
personID
="3"
>
<
name
>
LiGuo
</
name
>
<
age
>
55
</
age
>
<
address
>
武汉
</
address
>
</
person
>
<
person
personID
="4"
>
<
name
>
wj
</
name
>
<
age
>
55
</
age
>
<
address
>
应城
</
address
>
</
person
>
</
people
>
//====java文件===
treeTest.java
=================
/**/
/*
* treeTest.java
*
* Created on 2008年2月17日, 下午9:33
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package
javaapplication2;
/** */
/**
*
*
@author
Administrator
*/
import
java.awt.
*
;
import
javax.swing.
*
;
import
javax.swing.tree.
*
;
import
javax.swing.event.
*
;
import
org.w3c.dom.
*
;
import
javax.xml.parsers.
*
;
class
treeTest
extends
JFrame
{
private
JTree tree
=
null
;
private
DefaultTreeModel treeModel
=
null
;
private
static
String Na
=
null
;
//
定义Name元素
private
static
String Ag
=
null
;
//
定义Age元素
private
static
String Address
=
null
;
//
定义Address元素
private
static
String sqlStr
=
null
;
private
static
String person
=
null
;
DefaultMutableTreeNode root
=
null
;
DefaultMutableTreeNode aaa
=
null
;
DefaultMutableTreeNode ccc1
=
null
;
DefaultMutableTreeNode ccc2
=
null
;
DefaultMutableTreeNode ccc3
=
null
;
public
treeTest(String tit)
throws
Exception
{
super
(tit);
javax.xml.parsers.DocumentBuilderFactory factory
=
DocumentBuilderFactory.newInstance();
//
根据解析器工厂来获得具体的加载文档对象
javax.xml.parsers.DocumentBuilder builder
=
factory.newDocumentBuilder();
//
加载XML文件 路径不能是中文
Document doc
=
builder.parse(
"
a.xml
"
);
NodeList n1
=
doc.getElementsByTagName(
"
person
"
);
root
=
new
DefaultMutableTreeNode(
"
People
"
);
treeModel
=
new
DefaultTreeModel(root);
tree
=
new
JTree(treeModel);
for
(
int
i
=
0
;i
<
n1.getLength();i
++
)
{
//
生成一个Element对象来存放具体节点的值
Element node
=
(Element)n1.item(i);
person
=
node.getNodeName().toString()
+
i;
Na
=
node.getElementsByTagName(
"
name
"
).item(
0
).getFirstChild().getNodeValue();
Ag
=
node.getElementsByTagName(
"
age
"
).item(
0
).getFirstChild().getNodeValue();
Address
=
node.getElementsByTagName(
"
address
"
).item(
0
).getFirstChild().getNodeValue();
aaa
=
new
DefaultMutableTreeNode(person);
ccc1
=
new
DefaultMutableTreeNode(Na);
ccc2
=
new
DefaultMutableTreeNode(Ag);
ccc3
=
new
DefaultMutableTreeNode(Address);
aaa.add(ccc1);
aaa.add(ccc2);
aaa.add(ccc3);
treeModel.insertNodeInto(aaa,root,i);
//
将每个aaa加到根节点root中
}
getContentPane().add(tree,BorderLayout.CENTER);
final
JLabel messageLabel
=
new
JLabel(
"
用户还没有选择!
"
);
add(messageLabel,BorderLayout.SOUTH);
tree.addTreeSelectionListener(
new
TreeSelectionListener()
{
public
void
valueChanged(TreeSelectionEvent t)
{
TreePath tp
=
t.getNewLeadSelectionPath();
messageLabel.setText(
"
您选择了:
"
+
tp.getLastPathComponent());
}
}
);
setSize(
500
,
500
);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(
true
);
}
public
static
void
main(String args[])
throws
Exception
{
JFrame.setDefaultLookAndFeelDecorated(
true
);
new
treeTest(
"
JTree-XML-Test
"
);
}
}
posted @
2008-02-17 17:10
wj-conquer
阅读(
525
) 评论(
0
)
收藏
举报
刷新页面
返回顶部
公告