java 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  }





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值