用dom4j来解析xml文件的操作
package test;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestXml {
String link = "";
String tit = "";
String pubdate = "";
String image = "";
String date = "";
String source = "";
String description;
String Docid;
String Server;
String Samenum;
String Interfixnum;
//获得整个xml文档
public Document readxml(URL url) throws MalformedURLException,
DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(url);
//System.out.println("ok");
return document;
}
//获得根元素
public Element root(Document doc) {
return doc.getRootElement();
}
//遍历节点并取得其值
/**
* @param root
*/
public void node( Element root)
{
// String link="";
// String tit="";
// String pubdate="";
// String image="";
// String date="";
// String source="";
// String description;
// String Docid;
// String Server;
// String Samenum;
// String Interfixnum;
for ( Iterator i = root.elementIterator(); i.hasNext(); )
{
Element element1 = (Element) i.next();//遍历出每个接点成功
for(Iterator it=element1.elementIterator();it.hasNext();)
{
Element element=(Element)it.next();
if (element.getName().equals("link"))//获得节点链接地址
{
link=element.getText();//获得节点内容
System.out.println(link);
}
else if(element.getName().equals("tit") )//获得新闻标题
{
tit=element.getText();
System.out.println(tit);
}
else if(element.getName().equals("pubdate"))//检索结果的时间
{
pubdate=element.getText();
System.out.println(pubdate);
}
else if(element.getName().equals("date"))//检索结果的日期
{
date=element.getText();
}
else if(element.getName().equals("image"))//新闻相关图片的地址
{
image=element.getText();
}
else if(element.getName().equals("source"))//检索结果的来源
{
source=element.getText();
}
else if(element.getName().equals("description"))//检索结果的简介
{
description=element.getText();
}
else if(element.getName().equals("Docid"))//检索结果的id
{
Docid=element.getText();
}
else if(element.getName().equals("Server"))//检索结果的服务器
{
Server=element.getText();
}
else if(element.getName().equals("Samenum"))//检索结果的相同新闻个数
{
Samenum=element.getText();
}
else if(element.getName().equals("Interfixnum"))//检索结果的相关新闻个数
{
Interfixnum=element.getText();
}
}
}
}
public static void main(String[] args) {
TestXml testxml = new TestXml();
try {
URL fileurl = new URL(
"http://202.108.2.45//news/news_xml/xml/allnews.cgi?word=mm&nd=1");
//BufferedReader filedata = new BufferedReader(new InputStreamReader(fileurl.openStream()));
Document doc = testxml.readxml(fileurl);
Element root = testxml.root(doc);
testxml.node(root);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}