读书人

XML简单有关问题

发布时间: 2012-01-05 22:36:54 作者: rapoo

XML简单问题
在JSP下,不会操作XML。
XML文件如下:
<?xml version= "1.0 " encoding= "UTF-8 "?>
<tree id= "0 ">
<item text= " 工业企业档案分类 " id= "15403 " sid= " ">

<item text= "经营管理类 " id= "15404 " sid= "15403 " SortCode= "11 ">
<item text= "经营决策 " id= "15414 " sid= "15404 " SortCode= "11A1 "/>
<item text= "计划工作 " id= "15415 " sid= "15404 " SortCode= "11A2 "/>
<item text= "财务管理 " id= "15416 " sid= "15404 " SortCode= "11A3 "/>
<item text= "物资管理 " id= "15417 " sid= "15404 " SortCode= "11A4 "/>
<item text= "产品销售 " id= "15418 " sid= "15404 " SortCode= "11A5 "/>
<item text= "企业管理 " id= "15419 " sid= "15404 " SortCode= "11A6 "/>
</item>

<item text= "生产技术管理类 " id= "15405 " sid= "15403 " SortCode= "12 ">
<item text= "生产调度 " id= "15420 " sid= "15405 " SortCode= "12A1 "/>
<item text= "质量管理 " id= "15421 " sid= "15405 " SortCode= "12A2 "/>
<item text= "劳动管理 " id= "15422 " sid= "15405 " SortCode= "12A3 "/>
<item text= "能源管理 " id= "15423 " sid= "15405 " SortCode= "12A4 "/>
<item text= "安全管理 " id= "15424 " sid= "15405 " SortCode= "12A5 "/>
<item text= "科技管理 " id= "15425 " sid= "15405 " SortCode= "12A6 "/>
<item text= "环境保护 " id= "15426 " sid= "15405 " SortCode= "12A7 "/>
<item text= "计量工作 " id= "15427 " sid= "15405 " SortCode= "12A8 "/>
<item text= "标准化工作 " id= "15428 " sid= "15405 " SortCode= "12A9 "/>
<item text= "档案和信息管理 " id= "15429 " sid= "15405 " SortCode= "12AA "/>
</item>

</item>
</tree>

XML文件是用来动态生成树的,当点击页面上一个按钮的时候已经知道了是“生产技术管理类”这个节点,现在需要读到 <item text= "档案和信息管理 " id= "15429 " sid= "15405 " SortCode= "12AA "/> 这个节点的SortCode= "12AA "信息,也就是12AA。
请问该怎么读?或者说如何读取XML中的子节点。

[解决办法]
读入xml后,把note转为hashtable。
[解决办法]
用dom4j等xml库来读取xml文件,然后就可以进行遍历找到你要的节点
[解决办法]
感觉只能遍历吧,获得字节点列表,然后遍历,通过它们的属性来定位
比如生产技术管理类这个节点为note,那么获得它的子节点列表note.getChildNotes,然后遍历它们,再用getAttribute方法获得它们的text或者id来定位
[解决办法]
/**
* 读取XML文件所有信息
* <p>
* 从联系人表(client.xml)中读取所有信息


*/
public void LoadXML() {
FileInputStream fi = null;
try {
// 从包资源中读取
// InputStream fi =
// this.getClass().getResourceAsStream( "/ "+filename);
// 打开文件
fi = new FileInputStream(filename);
SAXBuilder sb = new SAXBuilder();
// 构造Document
Document doc = sb.build(fi);

// 得到根元素
Element root = doc.getRootElement();
System.out.println(root.getName());
// 得到根元素所有子元素的集合
List persions = root.getChildren();
Element persion = null;
// 遍历所有元素
for (int i = 0; i < persions.size(); i++) {
// 得到联系人Element
persion = (Element) persions.get(i);

System.out.println( " " + persion.getChild( "姓名 ").getText());
System.out.println( " " + persion.getChild( "ID ").getText());
System.out.println( " " + persion.getChild( "公司 ").getText());
System.out.println( " " + persion.getChild( "EMAIL ").getText());

// 得到地址Element
Element address = null;
List addresses = persion.getChildren( "地址 ");
for (int j = 0; j < addresses.size(); j++) {
address = (Element) addresses.get(j);
System.out.println( " " + address.getChild( "街道 ").getText());
System.out.println( " " + address.getChild( "城市 ").getText());
System.out.println( " " + address.getChild( "省份 ").getText());
}

System.out.println( " " + persion.getChild( "电话 ").getText());

}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fi.close();
} catch (Exception e) {
e.printStackTrace();
}
}
你参考下吧。别忘了给分。呵呵。

读书人网 >Java Web开发

热点推荐