下面是一个用JDOM进行XPATH查询的例子:
假设XML的结构(随便找的一个XML)如下:
test.xml
<?xml version="1.0" encoding="gb2312"?>
<root>
<LINE>
<种类>动物</种类>
</LINE>
<LINE>
<编号>001</编号>
<名称>牛</名称>
</LINE>
<LINE>
<种类>植物</种类>
</LINE>
<LINE>
<编号>001</编号>
<名称>松树</名称>
</LINE>
<LINE>
<编号>002</编号>
<名称>玫瑰</名称>
</LINE>
</root>
然后用下面程序,查询编号为001的LINE元素,并显示它们的名称。
test.java
package mypack;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.xpath.XPath;
public class test {
public static void main(String[] args) {
File f=new File("test.xml");
SAXBuilder saxb=new SAXBuilder();
try {
Document xmldoc=saxb.build(f);
XPath xpath=XPath.newInstance("//LINE[编号='001']");//创建一个查询编号为001的LINE元素的XPATH。
List nodes=xpath.selectNodes(xmldoc);//进行查询
System.out.println("返回记录数:"+nodes.size());
for(int i=0;i<nodes.size();i++) {
System.out.print(i+" / ");
System.out.println(((Element)nodes.get(i)).getChildText("名称"));//返回该LINE的名称的文本值。
}
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}