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

Java DOM Parser - 查询XML文档

Java DOM分析器查询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

package com.it1352.xml; import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.DocumentBuilder;import org.w3c.dom.Document;import org.w3c.dom.NodeList;import org.w3c.dom.Node;import org.w3c.dom.Element;import java.io.File;public class QueryXmlFileDemo {   public static void main(String argv[]) {       try {         File inputFile = new File("input.txt");         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();         Document doc = dBuilder.parse(inputFile);         doc.getDocumentElement().normalize();         System.out.print("Root element: ");         System.out.println(doc.getDocumentElement().getNodeName());         NodeList nList = doc.getElementsByTagName("supercars");         System.out.println("----------------------------");                  for (int temp = 0; temp < nList.getLength(); temp++) {            Node nNode = nList.item(temp);            System.out.println("\nCurrent Element :");            System.out.print(nNode.getNodeName());                        if (nNode.getNodeType() == Node.ELEMENT_NODE) {               Element eElement = (Element) nNode;               System.out.print("company : ");               System.out.println(eElement.getAttribute("company"));               NodeList carNameList = eElement.getElementsByTagName("carname");                              for (int count = 0; count < carNameList.getLength(); count++) {                  Node node1 = carNameList.item(count);                                    if (node1.getNodeType() == node1.ELEMENT_NODE) {                     Element car = (Element) node1;                     System.out.print("car name : ");                     System.out.println(car.getTextContent());                     System.out.print("car type : ");                     System.out.println(car.getAttribute("type"));                  }               }            }         }      } catch (Exception e) {         e.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 :