向网易一些大型网站都新闻系统都是用xml格式的网页来显示的,下载、解析xml文档是鄙人都一点爱好。一点小代码再次记录一下,以防以后变成用到,到时候直接“拿来主义” 选择网易都一个xml页面: 第一步:下载! public class DownLoadXML { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //URLUni统一资源定位器 String urlName="http://news.163.com/special/00011K6L/rss_gn.xml"; URL url=new URL(urlName); URLConnection connection=url.openConnection(); //和网络建立连接 connection.connect(); //获取从网络来的输入流 InputStream in=connection.getInputStream(); //把字节输入流转成字符流 Reader r=new InputStreamReader(in); //给字符流做缓存 BufferedReader br=new BufferedReader(r); //while循环读取 String line=""; //取到东西写向文件 Writer w=new FileWriter("f:/text.xml"); BufferedWriter bw=new BufferedWriter(w); while((line=br.readLine())!=null){ bw.write(line); bw.newLine(); } bw.close(); w.close(); br.close(); r.close(); in.close(); } } 第二步: 解析刚刚下载都这个text.xml: 根据选择都一下两个方法read1()、read2() 会用到下面两个jar包 dom4j-1.6.jar jaxen-1.1-beta-9.jar public class TestXMLReader { public static void main(String[] args) { try { //read1(); read2(); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //这种解析方式需要:dom4j-1.6.jar public static void read1() throws DocumentException{ SAXReader read=new SAXReader(); //得到xml文档对应的对象 Document document=read.read("f:/text.xml"); //得到xml的根元素 Element e_root=document.getRootElement(); //得到channel节点元素 Element e_channel=e_root.element("channel"); //得到item元素的列表 List list_item=e_channel.elements("item"); for(Object obj:list_item){ Element e_item=(Element)obj; Element e_title=e_item.element("title"); System.out.println(e_title.getText()); } } //这种方式需要:jaxen-1.1-beta-9.jar dom4j-1.6.jar public static void read2() throws DocumentException{ SAXReader reader=new SAXReader(); Document document=reader.read("f:/text.xml"); Element e_root=document.getRootElement(); List list_link=e_root.selectNodes("channel/item/title"); for(Object obj:list_link){ Element e=(Element) obj; System.out.println(e.getText()); } } }