1. 程式人生 > >dom4j通過URL解析xml資料

dom4j通過URL解析xml資料


public static Document getXml(String keyword,String pagenum,String pagesize) throws DocumentException{
	Document document=null;
	SAXReader saxReader = new SAXReader();
	
	document = saxReader.read("http://10.0.4.136/autopic_search/autogetpic.ym?keyword="+keyword+"&pagenum="+pagenum+"&pagesize="+pagesize+"");
	return document;
}

最近在工作中用到了這個方式讀取xml資料 剛拿到這個需求的時候感覺有些麻爪 所以記錄下來以備今後使用

首先上面的方法是用來獲取document物件的 read()方法內參數為url字串 如有需要可以將此字串提取到引數列表中

Document doc = getXml(keyword, pageno, pagesize);
		 
Element root =doc.getRootElement();
				
Document doc = getXml(keyword, pageno, pagesize);
         
Element root =doc.getRootElement();
                
List<Element> elements = root.elements();
                         for(int i = 0;i< elements.size();i++){
                         
                             Element e = elements.get(i);
                            Element picidEl=e.element("picid"); 
                            String mpicid=picidEl.getText(); 
                            
                            Element picurlEl=e.element("picurl"); 
                            String mpicurl=picurlEl.getText(); 
                            
                            Element keywordEl=e.element("keyword"); 
                            String mkeyword=keywordEl.getText();
                            
                            Element channelEl=e.element("channel"); 
                            String mchannel=channelEl.getText();List<Element> elements = root.elements();
						 for(int i = 0;i< elements.size();i++){
						 
						 	Element e = elements.get(i);
							Element picidEl=e.element("picid"); 
							String mpicid=picidEl.getText(); 
							
							Element picurlEl=e.element("picurl"); 
							String mpicurl=picurlEl.getText(); 
							
							Element keywordEl=e.element("keyword"); 
							String mkeyword=keywordEl.getText();
							
							Element channelEl=e.element("channel"); 
							String mchannel=channelEl.getText();
}

}

這個程式碼片段是用來迭代xml各個元素並獲取元素內的 text 內容的

下面附上xml資料格式

<?xml version="1.0" encoding="UTF-8"?>


<data>
<news>
<picid>
<![CDATA[176556578]]>
</picid>
<picurl>
<![CDATA[http://i4.hexunimg.cn/2015-06-08/176556578.jpg]]>
</picurl>
<keyword>
<![CDATA[尋求,歐洲,g7,不買賬,牽制,經濟,安倍,峰會,中國]]>
</keyword>
<channel>
<![CDATA[100]]></channel></news><news><picid><![CDATA[176556401]]>
</picid>
<picurl>
<![CDATA[http://i9.hexunimg.cn/2015-06-08/176556401.jpg]]>
</picurl>
<keyword>
<![CDATA[太極,面對,日本,安保,安倍,違憲,法案,在打,質疑]]>
</keyword>
<channel>
<![CDATA[100]]></channel></news><news><picid><![CDATA[176556398]]>
</picid>
<picurl>
<![CDATA[http://i8.hexunimg.cn/2015-06-08/176556398.jpg]]>
</picurl>
<keyword>
<![CDATA[太極,面對,日本,安保,安倍,違憲,法案,在打,質疑]]>
</keyword>
<channel>
<![CDATA[100]]>
</channel>
</news>
<news>
<picid>
<![CDATA[176544977]]>
</picid>
<picurl>
<![CDATA[http://i4.hexunimg.cn/2015-06-08/176544977.jpg]]></picurl>
<keyword>
<![CDATA[烏克蘭,走錯,閱兵式,安倍]]></keyword>
<channel><![CDATA[100]]></channel>
</news>
</data>