xml之解析原理及dom4j查詢---2
一、解析方式
1、sax:特點:逐行解析,不可回退,只能查詢;
2、dom:特點:一次性解析成dom樹,可回退,能進行crud操作;
二、解析技術
JAXP:sun公司提供支援DOM和SAX開發包
JDom:dom4j兄弟
jsoup:一種處理HTML特定解析開發包
★dom4j:比較常用的解析開發包,hibernate底層採用。
三、dom解析的原理進而結構原型
xmldom 將文件載入到記憶體中,生成一個dom樹,並獲得一個Document物件,通過Document物件操作對dom進行操作。
四、dom4j進行查詢技術
1、匯入dom4j的jar包後在java檔案中,按以下步驟編寫
①建立核心物件SAXReader:SAXReader reader = new SAXReader();
②將xml文件載入到記憶體中形成dom樹:Document doc = reader.read(檔案路徑);
③獲取根節點:Element root = doc.getRootElement();通過根節點可以獲取其他節點(文字節點,屬性節點,元素節點)
④獲取所有子元素:List<Element> list = root.elements();
⑤獲取圓的指定屬性的內容:String value = 元素.attrbuteValue("屬性名");
⑥遍歷list獲取每一個元素:for(Element e:list){System.out.println(e);}
五、xpath 解析技術(依賴於dom4j)
使用步驟
①匯入兩個jar包(dom4j和jaxen-1.1-beta-6.jar兩個jar包缺一不可)
②載入xml檔案到記憶體中,操作如(四)中;
③使用api
doc.selectNode("表示式");//表示式為xpath表示式
doc.selectSingleNode("表示式");
表示式的寫法:(1)/ 從根節點選取 (2)// 從匹配選擇的當前節點選擇文件中的節點,而不考慮它們的位置
//元素名[@屬性名='屬性值']
例如,一個標籤下有一個id屬性且有值 id=2;
//元素名[@id='2'] 可以選擇它