SAXReader解析xml

SAXReader解析xml文件

要使用SAXReader解析xml文件,就需要導入兩個架包:版本自己選擇。
(1)dom4j-1.6.1.jar dom4j下載地址
(2)jaxen-1.1-beta-6.jar jaxen下載地址

項目的搭建如下:

在這裏插入圖片描述

項目的配置文件web.xml:
<?xml version="1.0" encoding="utf-8"?>
<mime name="hj">
   	<mime-mapping>
        <extension>123</extension>
        <mime-type>application/vnd.lotus-1-2-3</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>3dml</extension>
        <mime-type>text/vnd.in3d.3dml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>3ds</extension>
        <mime-type>image/x-3ds</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>mpn</extension>
        <mime-type>application/vnd.mophun.application</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>mpp</extension>
        <mime-type>application/vnd.ms-project</mime-type>
    </mime-mapping>
</mime>
讀取配置文件步驟如下:

1.首先實例化SAXReader對象,然後用Document對象獲取配置文件的數據。

		//實例化對象
		SAXReader read=new SAXReader();
		//獲取配置文件的數據
		Document doc=read.read("src/web.xml");

2.獲取根節點元素:

		//獲取根節點元素
		String rootElement=doc.getRootElement().getName();
		System.out.println("根節點元素:"+rootElement);

3.獲取根節點裏某個屬性的的屬性值:

														   //屬性名
		String rootName=doc.getRootElement().attributeValue("name");
		System.out.println("根節點mime裏name屬性的屬性值:"+rootName)

4.下面是幾種方法獲取某個節點的值:
注意 //代表從配置文件的任何位置去查找
/代表從這個節點下的子節點中查找

		/**
			第一種方法
		 * 獲取mime-type節點的值
		 * //兩個代表在文檔的任何位置查找這個節點    
		**/
		List<Element> element=doc.selectNodes("//mime-type");
		for(Element el:element){
			System.out.println(el.getText().trim());
		}
		
		//第二種方法
		List<Element> list=doc.selectNodes("//mime-mapping");
			for(Element el:list){
				//尋找mime-mapping下面的mime-type節點
				System.out.println(el.selectSingleNode("mime-type").getText().trim());
		
		//第三種方法
		//查找mime下面的所有mime-mapping節點
		List<Element> list=doc.selectNodes("/mime/mime-mapping");
		for(Element el:list){
			//在mime-mapping節點下面找到mime-type節點的值
			System.out.println(el.selectSingleNode("mime-type").getText());
		}
	}
		//查找mime-mapping下面的所有節點
		List<Element> list=doc.selectNodes("/mime/mime-mapping/*");
		for(Element el:list){
			//獲取mime-mapping下面所有節點的名字                     所有節點的值
			System.out.println(el.getName()+":"+el.getTextTrim()+"\n");
		}

真正的運用還是需要靈活運用它的一些方法。
希望這幾種方法對你有用!!!

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