首页 > 代码库 > 解析XML文件
解析XML文件
在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.它是基于事件流的方式进行解析.感兴趣的可以问问度娘.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。