标签: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.它是基于事件流的方式进行解析.感兴趣的可以问问度娘.
标签:style blog color java os io 文件 for
原文地址:http://www.cnblogs.com/zhouxuanyu/p/3922210.html