XML小练习:利用dom4j对XML文档进行解析(爽感yo~yo~yo~)

来源:互联网 发布:综合返利源码 编辑:程序博客网 时间:2024/05/01 13:23
XML文档:
<?xml version="1.0" encoding="UTF-8"?><联系人列表 公司="A集团"><联系人><姓名>张三</姓名><公司>A公司</公司><电话>(021)5555666</电话><地址><街道>5街</街道><城市>上海市</城市><省份>上海</省份></地址></联系人><联系人><姓名>王三</姓名><公司>B公司</公司><电话>(021)5555777</电话><地址><街道>87街</街道><城市>上海市</城市><省份>上海</省份></地址></联系人><联系人><姓名>李四</姓名><公司>C公司</公司><电话>(021)5555888</电话><地址><街道>67街</街道><城市>上海市</城市><省份>上海</省份></地址></联系人></联系人列表>



java利用dom4j实现解析:

package com.xml.dom4j;import java.io.File;import java.util.Iterator;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class companylist {public static void main(String[] args) throws Exception {SAXReader reader = new SAXReader();Document doc = reader.read(new File("companylist.xml"));Element root = doc.getRootElement();System.out.println("根元素为:" + root.getName());Element next = root.element("联系人");//需要指定次元素parsePerson(root,next);}public static void parsePerson(Element root,Element next) {List personList = next.elements();checkSubElement(next,personList,false);System.out.println("====================================");for (Iterator pasi = root.elementIterator(); pasi.hasNext();) {Element lucy = (Element) pasi.next();for (Iterator noya = lucy.elementIterator(); noya.hasNext();) {Element pagy = (Element) noya.next();if (pagy.isTextOnly()) {System.out.println(lucy.getName() + "-" + pagy.getName()+ "-" + pagy.getData());}List elementList = pagy.elements();checkSubElement(pagy,elementList,true);//检查是否有子元素}System.out.println("====================================");}}public static void checkSubElement(Element currect,List list,boolean choose)//检查是否有子元素的方法{System.out.println(currect.getName() + "子元素个数:"+ list.size()+"\n");if (list.size() > 0 && choose==true) { //如果有子元素,并且选择开关开启,才会进行解析for (int j = 0; j < list.size(); j++) {Element r = (Element) list.get(j);System.out.println("-"+ currect.getName() + "-" + r.getName() + "-"+ r.getText());}}}}


0 0
原创粉丝点击