一向習於使用JDOM Parse XML文件,在這次重構中,首次使用了XPath,挺不錯用的。
使用XPath功能,除了jdom.jar,還要import以下的jar,都在www.jdom.org下載壓縮檔時會有:
jaxen-core.jar
jaxen-jdom.jar
saxpath.jar
而參考飯粒如下:
 
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(file); 
XPath tagPath = XPath.newInstance(xPath);
List elements = tagPath.selectNodes(doc);
 
回傳的List是jdom的Element這個class的集合,怎麼使用XPath?在於上例的xPath變數。
若以web.xml為上例的file變數,要先拿掉它要參考的DTD或Schema,我還沒試到XPath去引用Validate的功能
XPath可以以下列Pattern進行測試
//servlet/servlet-class    --> 找出servlet tag下所有的servlet-class的tag值。
//filter/*                         --> 找出filter tag下所有的內容。
//services/service[@type='interval']     --> 找出services/service的type屬性等於interval者,web.xml沒有用到attribute,以此例代
//開頭表絕對路徑、/開頭是節點的相對路徑。
若涉及到A Tag要參考B Tag的值,目前XPath看來辦不到,也許XQuery可以。
 
arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()