TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
使用JDOM操作XML系列文章四 使用JDOM和XPATH结合查询
package jing.xml;
/**
* <p>Title: 使用JDOM和XPATH结合查询</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 欧朝敬 13873195792
* @version 1.0
*/
- import org.jdom.*;
- import org.jdom.output.*;
- import org.jdom.input.*;
- import org.jdom.xpath.*;
- import java.io.*;
- import java.util.*;
- public class TreeXML {
- public TreeXML() {
- }
- public static void main(String[] args) throws Exception {
- SAXBuilder sb = new SAXBuilder(); // 新建立构造器
- Document doc = sb.build(new FileInputStream("company.xml")); // 读入文件
- Element root = doc.getRootElement(); // 获得根元素element
- List row = root.getChildren(); //取得节点列表
- //按CID查找直接定位到ROW元素返回的是集合
- List find = XPath.selectNodes(root, "//ROW[@pid="1"]");
- System.out.println(find.size());
- for (int i = 0; i < find.size(); i++) {
- Element findelement = (Element) find.get(i);
- System.out.println(findelement.getAttributeValue("cname"));
- }
- //多条件查询
- Element findelement=(Element)XPath.selectSingleNode(root,"/ROOT/ROW[@pid="1"][@cid="3"]");
- System.out.println(findelement.getAttributeValue("cname"));
- XMLOutputter outp = new XMLOutputter(Format.getPrettyFormat()); //格式华输出,产生缩进和换行
- //重新格式化
- Format format = outp.getFormat();
- format.setEncoding("GB2312");
- format.setExpandEmptyElements(true);
- outp.setFormat(format);
- //outp.output(doc, new FileOutputStream("jdomcompany.xml")); //输出XML文档
- outp.output(doc, System.out);
- System.out.println("JDOM操作XML文档完毕!");
- }
- }
- 程序运行结果:
- C:java>java TreeXML
- 2
- 系统集成
- 软件开发
- 软件开发
- <?xml version="1.0" encoding="GB2312"?>
- <ROOT>
- <ROW cid="1" cname="中南迈特" descpt="湖南省长沙市" pid="0"></ROW>
- <ROW cid="2" cname="系统集成" descpt="各种系统集成" pid="1"></ROW>
- <ROW cid="3" cname="软件开发" descpt="软件开发" pid="1"></ROW>
- <ROW cid="6" cname="NetOA开发组" descpt="NetOA开发组" pid="3"></ROW>
- <ROW cid="7" cname="王军" descpt="J2EE组王军" pid="5"></ROW>
- <ROW cid="8" cname="湘红" descpt="J2EE组湘红" pid="5"></ROW>
- <ROW cid="9" cname="Windows集成组" descpt="Windows系统集成" pid="2"></ROW>
- <ROW cid="10" cname="Linux集成组" descpt="Linux相关系统集成" pid="2"></ROW>
- </ROOT>
复制代码 JDOM操作XML文档完毕! C:java> 附:company.xml
<?xml version="1.0" encoding="GB2312"?>
<ROOT>
<ROW cid="1" cname="中南迈特" descpt="湖南省长沙市" pid="0"></ROW>
<ROW cid="2" cname="系统集成" descpt="各种系统集成" pid="1"></ROW>
<ROW cid="3" cname="软件开发" descpt="软件开发" pid="1"></ROW>
<ROW cid="6" cname="NetOA开发组" descpt="NetOA开发组" pid="3"></ROW>
<ROW cid="7" cname="王军" descpt="J2EE组王军" pid="5"></ROW>
<ROW cid="8" cname="湘红" descpt="J2EE组湘红" pid="5"></ROW>
<ROW cid="9" cname="Windows集成组" descpt="Windows系统集成" pid="2"></ROW>
<ROW cid="10" cname="Linux集成组" descpt="Linux相关系统集成" pid="2"></ROW>
</ROOT>
源码下载:http://file.javaxxz.com/2014/10/9/235115281.zip |
|