XML小練習:利用dom4j對XML文檔進行解析(爽感yo~yo~yo~)

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());
			}
		}
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章