1. 程式人生 > >dom4j及xpath的使用詳細記載

dom4j及xpath的使用詳細記載

Xpath是專門用來對xml文件中查詢資訊的語言。利用它可以對xml的元素及屬性進行遍歷。

dom4j是用來讀寫xml的api,使用它可以進行比如xml配置檔案的讀寫等....

詳細的語法可以看這裡

使用之前先匯入兩個jar包:dom4j-2.0.2.jar,jaxen-1.1.2.jar

建立兩個xml檔案.

1:book.xml

<?xml version="1.0" encoding="UTF-8"?>
<書架>
	<書>
		<書名>java程式設計思想</書名>
		<作者>BruceEckel</作者>
		<國家>美國</國家>
		<售價>68.0元</售價>
	</書>
	<書>
		<書名>java核心技術</書名>
		<作者>CayS.Horstmann</作者>
		<國家>X國</國家>
		<售價>96.0元</售價>
	</書>
</書架>

2:user.xml

<?xml version="1.0" encoding="UTF-8"?>
<users>
	<user id="1" username="aaa" password="123" email="[email protected]"></user>
	<user id="2" username="bbb" password="456" email="[email protected]"></user>
</users>

對xml進行簡單的處理

		SAXReader reader=new SAXReader();
		Document document=reader.read(new File("book.xml"));
		
        //獲取一個節點元素
		String value=document.selectSingleNode("//書名").getText();
		System.out.println(value);
		
		//獲取所有節點元素
		List<Node> values=document.selectNodes("//書名");
		System.out.println(values.get(0).getText());
		

		//檢測文件是否有匹配的使用者名稱和密碼
		String username="aaa";
		String password="123";
		document=reader.read(new File("users.xml"));
		
        //語法:title[@lang='eng'] 選取所有 title 元素,且這些元素擁有值為 eng 的 lang 屬性。
		Node node=document.selectSingleNode("//user[@username='"+username+"'"+
		"and @password='"+password+"']");
	
		if (node!=null) {
			System.out.println("登入成功");
		}else {
			System.out.println("登陸失敗");
		}