XercesXMLExtractor.java
上传用户:cctqzzy
上传日期:2022-03-14
资源大小:12198k
文件大小:3k
源码类别:

搜索引擎

开发平台:

Java

  1. package chapter9;
  2. import javax.xml.parsers.DocumentBuilderFactory;
  3. import javax.xml.parsers.DocumentBuilder;
  4. import javax.xml.parsers.*;
  5. import java.io.*;
  6. import org.w3c.dom.Document; 
  7. import org.w3c.dom.NodeList;
  8. import org.w3c.dom.Element;
  9. import org.w3c.dom.Node;
  10. import org.xml.sax.SAXException ;
  11. public class XercesXMLExtractor {
  12.    public static void main(String[] args) {
  13.    getXmlNodeText("D:\workshop\docs\tree.xml");
  14.     }
  15.    public static void getXmlNodeText(String filename) {
  16.             // 获取DOM对象树的生成器
  17.         DocumentBuilderFactory builderfactory = DocumentBuilderFactory.newInstance();
  18.         try {
  19.             // 获取 DocumentBuilder实例
  20.             DocumentBuilder builder = builderfactory.newDocumentBuilder();
  21.             File file = new File(filename);
  22.             ////从 XML 文档获取 DOM 文档实例
  23.             Document document = builder.parse(file);
  24.             //获取某节点的集合
  25.             NodeList nodelist = document.getElementsByTagName("item");
  26.             // 获取节点列表的总长度
  27.             int listnum = nodelist.getLength();
  28.             System.out.println("--------节点数量:"+listnum + "--------");
  29.             for (int i = 0; i < listnum; i++) {
  30.              // 获取节点
  31.                 Element eltItem = (Element) nodelist.item(i);
  32.                 // 获取节点的各项属性
  33.                 Node eltTitle = eltItem.getElementsByTagName("title").item(0);
  34.                 Node eltLink  = eltItem.getElementsByTagName("addr").item(0);
  35.                 Node eltDescription  = eltItem.getElementsByTagName("description").item(0);
  36.                 String title = "";
  37.                 if( eltTitle!= null) {
  38.                  title = eltTitle.getFirstChild().getNodeValue();
  39.                 }
  40.                 String link = "";
  41.                 if( eltLink!= null) {
  42.                  link = eltLink.getFirstChild().getNodeValue();
  43.                 }
  44.                 String description = "";
  45.                 if( eltDescription!= null) {
  46.                  description = eltDescription.getFirstChild().getNodeValue();
  47.                 }                 
  48.                 // 输出结果
  49.                 System.out.print("标题:");
  50.                 System.out.println(title);
  51.                 System.out.print("链接:");
  52.                 System.out.println(link);
  53.                 System.out.print("描述:");
  54.                 System.out.println(description);
  55.                 System.out.println("----------------------------n");
  56.             }
  57.         } catch (ParserConfigurationException e) {
  58.             e.printStackTrace();
  59.         } catch (SAXException e) {
  60.             e.printStackTrace();
  61.         } catch (IOException e) {
  62.             e.printStackTrace();
  63.         }    
  64.    }
  65. }