国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
JDOM2.0.5版本通過xpath讀取xml或讀取帶有命名空間的xml

org.jdom2.xpath.XPath類居然標(biāo)注過時,無奈之下只能研究api。


發(fā)現(xiàn)Use XPathFactory/XPathExpression/XPathBuilder instead.


也就是說jdom應(yīng)該是將xpath類的功能進(jìn)行了更加詳細(xì)的分類。


根據(jù)經(jīng)驗進(jìn)行了一些類的測試,最后得出了讀取xml的兩種方式。


第一種方式,通過XPathFactory類讀取xml


xml文件的內(nèi)容如下

  1. <span style="font-size:14px"><?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="test.xsl"?>  
  3. <homepages xmlns:xlink="http://www.w3.org/1999/xlink">  
  4.   
  5.   <homepage xlink:type="simple"  
  6.   xlink:>Visit W3C</homepage>  
  7.     
  8. </homepages></span>  

通過SAXBuilder獲取document和root


  1. String path = System.getProperty("user.dir") + "\\src\\com\\xml\\file\\test.xml";  
  2.           
  3. SAXBuilder saxBuilder = new SAXBuilder();  
  4.           
  5. Document document = saxBuilder.build(path);  
  6.           
  7. Element root = document.getRootElement();  


建立XPathFactory類的對象,需要引入jaxen的jar包,我們使用JaxenXPathFactory類來生成XPathFactory

  1. XPathFactory factory = JaxenXPathFactory.instance();  


生產(chǎn)xpath表達(dá)式實例對象,并獲取結(jié)果集

  1. XPathExpression<Object> objs = factory.compile("http://homepages");  
  2.           
  3. List<Object> objList = objs.diagnose(root, false).getResult();  

完整代碼是

  1. String path = System.getProperty("user.dir") + "\\src\\com\\xml\\file\\test.xml";  
  2.           
  3. SAXBuilder saxBuilder = new SAXBuilder();  
  4.           
  5. Document document = saxBuilder.build(path);  
  6.           
  7. Element root = document.getRootElement();  
  8.           
  9. XPathFactory factory = JaxenXPathFactory.instance();  
  10.           
  11. XPathExpression<Object> objs = factory.compile("http://homepages");  
  12.           
  13. List<Object> objList = objs.diagnose(root, false).getResult();  

第二種方式,通過XPathBuilder獲取xpath表達(dá)式的實例對象集合

首先來創(chuàng)建一個filter,org.jdom2.filter.Filters中提供給我們了一些過濾器,我們這里選擇元素類型的,F(xiàn)ilter接口的全名是org.jdom2.filter.Filter

  1. Filter<Element> filter = Filters.element();  

生成XPathBuilder對象

  1. XPathBuilder<Element> builder = new XPathBuilder<Element>("http://homepages", filter);  

根據(jù)它的compileWith(XPathFactory factory)方法來獲取到我們需要的xpath表達(dá)式的實例對象集合

  1. XPathFactory factory = JaxenXPathFactory.instance();  
  2.           
  3. XPathExpression<Element> objs = builder.compileWith(factory);  

之后的方式就和方法1一樣了。

完整代碼是

  1. String path = System.getProperty("user.dir") + "\\src\\com\\xml\\file\\test.xml";  
  2.           
  3. SAXBuilder saxBuilder = new SAXBuilder();  
  4.           
  5. Document document = saxBuilder.build(path);  
  6.           
  7. Element root = document.getRootElement();  
  8.           
  9. Filter<Element> filter = Filters.element();  
  10.           
  11. XPathBuilder<Element> builder = new XPathBuilder<Element>("http://homepages", filter);  
  12.           
  13. XPathFactory factory = JaxenXPathFactory.instance();  
  14.           
  15. XPathExpression<Element> objs = builder.compileWith(factory);  
  16.           
  17. List<Element> objList = objs.diagnose(root, false).getResult();     

獲取帶有命名空間的xml文件內(nèi)容

使用XPathBuilder的setNamespace方法聲明命名空間,Xpath表達(dá)式不需要再寫"http://",例如

  1. XPathBuilder<Element> builder = new XPathBuilder<Element>("ci:Teacher", filter);  
  2.           
  3. builder.setNamespace("ci", "http://www.test.cn/tuple");  





本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用DOM/JDOM解析XML文件(3)
JDOM/XPATH編程指南
JDOM+XPATH解析XML
使用JDOM設(shè)計簡單的JSP+XML的系統(tǒng)留言板
JDom使用詳解
JDOM 介紹及使用指南
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服