下面是一个用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(); } }
}