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>