dom4j解析.xml文件

xml 是可擴展的標記性語言。xml 的主要作用有: 1、用來保存數據,而且這些數據具有自我描述性 2、它還可以做爲項目或者模塊的配置文件 3、還可以做爲網絡傳輸數據的格式(現在 JSON 爲主)。

CDATA 語法可以告訴 xml 解析器,我 CDATA 裏的文本內容,只是純文本,不需要 xml 語法解析
CDATA 格式: <![CDATA[ 這裏可以把你輸入的字符原樣顯示,不會解析 xml]]>。

dom4j 編程步驟:
第一步: 先加載 xml 文件創建 Document 對象 第二步:通過 Document 對象拿到根元素對象 第三步:通過根元素.elelemts(標籤名); 可以返回一個集合,這個集合裏放着。所有你指定的標籤名的元素對象 第四步:找到你想要修改、刪除的子元素,進行相應在的操作 第五步,保存到硬盤上
需要解析的 books.xml 文件內容

<?xml version="1.0" encoding="UTF-8"?> 
    <books> 
        <book sn="SN12341232"> 
            <name>辟邪劍譜</name> 
            <price>9.9</price>
            <author>班主任</author> 
        </book> 
        <book sn="SN12341231"> 
            <name>葵花寶典</name> 
            <price>99.99</price>
            <author>班長</author> 
        </book> 
    </books>

解析獲取 Document 對象的代碼 第一步,先創建 SaxReader 對象。這個對象,用於讀取 xml 文件,並創建 Document

需要分四步操作:

第一步,通過創建 SAXReader 對象。來讀取 xml 文件,獲取 Document 對象

第二步,通過 Document 對象。拿到 XML 的根元素對象

第三步,通過根元素對象。獲取所有的 book 標籤對象

第四步,遍歷每個 book 標籤對象。然後獲取到 book 標籤對象內的每一個元素,再通過 getText() 方法拿到起始標籤和結 束標籤之間的文本內容
 

/* * 讀取 xml 文件中的內容 */ 
@Test public void readXML() throws DocumentException {
 // 需要分四步操作: 
// 第一步,通過創建 SAXReader 對象。來讀取 xml 文件,獲取 Document 對象 
// 第二步,通過 Document 對象。拿到 XML 的根元素對象 
// 第三步,通過根元素對象。獲取所有的 book 標籤對象 
// 第四步,遍歷每個 book 標籤對象。然後獲取到 book 標籤對象內的每一個元素,再通過 getText() 方法拿到起始標籤和結束標籤之間的文本內容
// 第一步,通過創建 SAXReader 對象。來讀取 xml 文件,獲取 Document 對象 
SAXReader reader = new SAXReader(); Document document = reader.read("src/books.xml");
 // 第二步,通過 Document 對象。拿到 XML 的根元素對象 
Element root = document.getRootElement(); 
// 打印測試
 // Element.asXML() 它將當前元素轉換成爲 String 對象 // 
System.out.println( root.asXML() );
 // 第三步,通過根元素對象。獲取所有的 book 標籤對象 
// Element.elements(標籤名)它可以拿到當前元素下的指定的子元素的集合 
List<Element> books = root.elements("book"); 
// 第四步,遍歷每個 book 標籤對象。然後獲取到 book 標籤對象內的每一個元素, 
for (Element book : books) { 
// 測試
 // System.out.println(book.asXML()); 
// 拿到 book 下面的 name 元素對象 
Element nameElement = book.element("name"); 
// 拿到 book 下面的 price 元素對象
 Element priceElement = book.element("price"); 
// 拿到 book 下面的 author 元素對象 
Element authorElement = book.element("author"); 
// 再通過 getText() 方法拿到起始標籤和結束標籤之間的文本內容
 System.out.println("書名" + nameElement.getText() + " , 價格:" + priceElement.getText() + ", 作者:" + authorElement.getText()); }

打印內容:

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