码迷,mamicode.com
首页 > 其他好文 > 详细

解析XML文件

时间:2014-08-19 16:22:15      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   os   io   文件   for   

 在WEB开发中,肯定会遇到对XML文件的解析.现在流行的解析XML文档的有很多,笔者下面用DOM4J演示如何解析XML文档.

 首先下载一个开源的jar包,我下载的是dom4j-1.6.1.jar.然后导入到自己的工程中.接着新建一个简单的.XML文件.我的如下:

1 <bookstore name="123" value="456">
2     <book>
3         <bookname>小人书</bookname>
4         <author>张三</author>
5         <price>50</price>
6     </book>
7 </bookstore>

 现在对这个.XML文件进行解析.代码如下:

 1 package com.test.xml;
 2 
 3 import java.io.File;
 4 import java.util.Iterator;
 5 import java.util.logging.Logger;
 6 
 7 import org.dom4j.Attribute;
 8 import org.dom4j.Document;
 9 import org.dom4j.DocumentException;
10 import org.dom4j.Element;
11 import org.dom4j.io.SAXReader;
12 
13 public class ParseXML {
14     
15     private final static String filename = "book.xml";
16     
17     public static void main(String[] args) {
18         SAXReader reader = new SAXReader();
19         
20         try{
21             Document document = reader.read(new File(filename));
22             //获得根元素
23             Element rootElement = document.getRootElement();
24             //获得根元素的属性
25             String rootAttribute = "";
26             for(Iterator iterator = rootElement.attributeIterator();iterator.hasNext();){
27                 Attribute attribute = (Attribute)iterator.next();
28                 rootAttribute += (attribute.getName()+",");
29             }
30             pp(filename + "文件的根元素为: " + rootElement.getName() + "(属性有: " + rootAttribute + ")");
31             
32             //对根元素下一级的子元素遍历
33             for(Iterator iterator1 = rootElement.elementIterator();iterator1.hasNext();){
34                 Element element1 = (Element)iterator1.next();
35                 pp(rootElement.getName() + "的子元素有: " + element1.getName());
36                 
37                 //遍历子元素的子元素
38                 String sonelement = "";
39                 for(Iterator iterator2 = element1.elementIterator();iterator2.hasNext();){
40                     Element element2 = (Element)iterator2.next();
41                     sonelement += (element2.getName()+",");
42                 }
43                 pp(element1.getName() + "的子元素有: " + sonelement);
44             }
45             
46         }catch(DocumentException e){
47             //采用日志的方式记录错误
48             Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).info(e.getMessage());
49         }
50     }
51     
52     public static void pp(Object o){
53         System.out.println(o.toString());
54     }
55 }

 dom4j是将XML文档看做一个document对象(树结构)进行解析.还有一种方式解析XML,叫做SAX.它是基于事件流的方式进行解析.感兴趣的可以问问度娘.

解析XML文件,布布扣,bubuko.com

解析XML文件

标签:style   blog   color   java   os   io   文件   for   

原文地址:http://www.cnblogs.com/zhouxuanyu/p/3922210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!