你的位置:首页 > Java教程

[Java教程]使用DOM解析XML文档


简单介绍一下使用DOM解析

<?

使用DOM解析

import java.io.IOException;import javax.import javax.import javax.import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org./** * 使用DOM解析@author Administrator * */public class DomRead/**   * @param args   */  public static void main(String[] args) {    // TODO Auto-generated method stub        //========使用DOM解析//第一步:建立DOM解析工厂对象实例    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();            try {      //第二步:从DOM解析工厂中获取解析器      DocumentBuilder db = dbf.newDocumentBuilder();            //第三步:解析      Document dom = db.parse("file:///D:/Desktop/chapter14/教学演示案例/示例3:使用内部DTD文件/pet2.);            //得到所有狗狗节点信息      NodeList nl = dom.getElementsByTagName("dog");      System.out.println(nl.getLength());      //循环取出信息      for (int i = 0; i < nl.getLength(); i++) {                //得到每只狗狗节点        Node dog = nl.item(i);                //得到狗狗的属性(即ID)        Element el = (Element)dog;        String id = el.getAttribute("id");        System.out.println("ID:"+id);                //获取狗狗的子节点信息        for(Node dog_child = dog.getFirstChild();dog_child!=null;dog_child = dog_child.getNextSibling()){                    //为了防止打印空格(即#text);需要判断当前对象为Node节点对象          if(dog_child.getNodeType() == Node.ELEMENT_NODE){            String name = dog_child.getNodeName();            String value = dog_child.getFirstChild().getNodeValue();            System.out.println(name+":"+value);          }        }              }          } catch (ParserConfigurationException e) {      // TODO Auto-generated catch block      e.printStackTrace();    } catch (SAXException e) {      // TODO Auto-generated catch block      e.printStackTrace();    } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }      }}