开发手册 欢迎您!
软件开发者资料库

Java JDOM Parser - 查询XML文档

Java JDOM分析器查询XML文档 - 从基本概念开始,简单易学地学习Java XML,其中包括概述,Java XML分析器,DOM分析器,解析XML文档,查询XML文档,创建XML文档,修改XML文档,SAX Parser,JDOM XML Parser,StAX Parser,XPath Parser,DOM4J Parser,XSLT,JAXB。

演示示例

这是我们需要查询的输入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();         List supercarList = 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 :