演示示例
这是我们需要查询的输入xml文件 :
Ferarri 101 Ferarri 201 Ferarri 301 Lamborgini 001 Lamborgini 002 Lamborgini 003 Benteley 1 Benteley 2 Benteley 3
QueryXmlFileDemo.java
import java.io.File;import java.io.IOException;import java.util.List;import org.jdom2.Attribute;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.JDOMException;import org.jdom2.input.SAXBuilder;public class QueryXmlFileDemo { public static void main(String[] args) { try { File inputFile = new File("input.txt"); SAXBuilder saxBuilder = new SAXBuilder(); Document document = saxBuilder.build(inputFile); System.out.println("Root element :" + document.getRootElement().getName()); Element classElement = document.getRootElement(); ListsupercarList = classElement.getChildren("supercars"); System.out.println("----------------------------"); for (int temp = 0; temp < supercarList.size(); temp++) { Element supercarElement = supercarList.get(temp); System.out.println("\nCurrent Element :" + supercarElement.getName()); Attribute attribute = supercarElement.getAttribute("company"); System.out.println("company : " + attribute.getValue() ); List carNameList = supercarElement.getChildren("carname"); for (int count = 0; count < carNameList.size(); count++) { Element carElement = carNameList.get(count); System.out.print("car name : "); System.out.println(carElement.getText()); System.out.print("car type : "); Attribute typeAttribute = carElement.getAttribute("type"); if(typeAttribute != null) System.out.println(typeAttribute.getValue()); else { System.out.println(""); } } } } catch(JDOMException e) { e.printStackTrace(); } catch(IOException ioe) { ioe.printStackTrace(); } }}
这会产生以下结果 :
Root element :cars----------------------------Current Element :supercarscompany : Ferraricar name : Ferarri 101car type : formula onecar name : Ferarri 201car type : sports carcar name : Ferarri 301car type : sports carCurrent Element :supercarscompany : Lamborginicar name : Lamborgini 001car type : car name : Lamborgini 002car type : car name : Lamborgini 003car type :