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");
}
真正的運用還是需要靈活運用它的一些方法。
希望這幾種方法對你有用!!!