Chinese To English     英文 转 中文             
         
随笔-9  评论-12  文章-0  trackbacks-0
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 }




Huaxu's 
有事点这里
MSN:Jak.Shen@hotmail.com
posted on 2008-05-24 15:42 Huaxu's 阅读(143) 评论(3)  编辑  收藏 所属分类: JavaSE

评论:
# re: Java Dom解析XML 2008-05-27 10:12 | JAVA_START
嘿嘿!  回复  更多评论
  
# re: Java Dom解析XML[未登录] 2008-08-08 15:55 | Scott.H
<person id="1">
</person>

这里的id应该怎么得到呢  回复  更多评论
  
# re: Java Dom解析XML 2008-08-10 12:46 | Jak.Shen
@Scott.H

你说的id是person节点的属性,属性不是子节点,所以获取上面所写的nl1的属性id即可。
nl1.getAttributes();  回复  更多评论
  

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
成果网帮您增加网站收入
 
相关链接:
网站导航: