java

xiaoxiao2026-04-15  3

Java Dom解析XML

1、XML文件persons.xml内容如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> <? 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解析代码如下:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->  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  } 相关资源:w3c-dom.jar 包
转载请注明原文地址: https://www.6miu.com/read-5047415.html

最新回复(0)