Java Dom解析XML

Java Dom解析XML
1、XML文件persons.xml内容如下:

<? xml version="1.0" encoding="UTF-8" ?>
< persons >
  
< person >< name > jak </ name >< sex > </ sex ></ person >
  
< person >
    
< name > jcy </ name >
    
< sex > </ sex >
  
</ person >
</ persons >

2、java解析代码如下:

 1  package  net.vicp.jiasoft;
 2 
 3  import  javax.xml.parsers. * ;
 4  import  java.io.IOException;
 5  import  org.xml.sax.SAXException;
 6  import  org.w3c.dom.Document;
 7  import  org.w3c.dom.NodeList;
 8  import  org.w3c.dom.Node;
 9 
10  /**
11   * <p>Title: Dom解析XML示例</p>
12   *
13   * <p>Description: Dom解析XML</p>
14   *
15   * <p>Copyright: Copyright (c) 2008</p>
16   *
17   * <p>Company: Jiasoft</p>
18   *
19   *  @author  Jak.Shen
20   *  @version  1.0
21    */
22  public   class  DomXml {
23       public   void  parsersXml() {
24           // 实例化一个文档构建器工厂
25          DocumentBuilderFactory dbf  =  DocumentBuilderFactory.newInstance();
26           try  {
27               // 通过文档构建器工厂获取一个文档构建器
28              DocumentBuilder db  =  dbf.newDocumentBuilder();
29               // 通过文档通过文档构建器构建一个文档实例
30              Document doc  =  db.parse( " persons.xml " );
31               // 获取所有名字为 “person” 的节点
32              NodeList nl1  =  doc.getElementsByTagName( " person " );
33               int  size1  =  nl1.getLength();
34               for  ( int  i  =   0 ; i  <  size1; i ++ ) {
35                  Node n  =  nl1.item(i);
36                   // 获取 n 节点下所有的子节点。此处值得注意,在DOM解析时会将所有回车都视为 n 节点的子节点。
37                  NodeList nl2  =  n.getChildNodes();
38                   // 因为上面的原因,在此例中第一个 n 节点有 2 个子节点,而第二个 n 节点则有 5 个子节点(因为多了3个回车)。
39                   int  size2  =  nl2.getLength();
40                   for  ( int  j  =   0 ; j  <  size2; j ++ ) {
41                      Node n2  =  nl2.item(j);
42                       // 还是因为上面的原因,故此要处判断当 n2 节点有子节点的时才输出。
43                       if  (n2.hasChildNodes()) {
44                          System.out.println(n2.getNodeName()  +   "  =  "   +
45                                             n2.getFirstChild().getNodeValue());
46                      }
47                  }
48              }
49          }  catch  (ParserConfigurationException ex) {
50              ex.printStackTrace();
51          }  catch  (IOException ex) {
52              ex.printStackTrace();
53          }  catch  (SAXException ex) {
54              ex.printStackTrace();
55          }
56      }
57 
58       public   static   void  main(String[] args) {
59          DomXml domxml  =   new  DomXml();
60          domxml.parsersXml();
61      }
62  }




杰森  邮箱:json.shen(at)gmail.com
网站:www.shenjia.org

你可能感兴趣的:(Java Dom解析XML)