java读取xml

用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());
  }

 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值