新闻动态   News
搜索   Search
你的位置:首页 > 新闻动态 > 技术文档

DOM4J读取XML文件

2013/8/22 15:08:42      点击:

dom4j是使用Java语言来读写XML文件一个开源XML解析包,使用它可以很轻松的操作XML文件。关于dom4j主要用到的就是对xml文件的读写功能,这里简要总结。

    读写XML文档主要依赖于org.dom4j.io包,其中提供DOMReader和SAXReader两不同方式,但是DOMReader只有一种read方法,而SAXReader有多个read方法,使用更灵活。

    SAXReaderread方法是重载的,可以从InputStream,File, Url等多种不同的源来读取

SAXReader为例:

  1. <span style="font-size:18px;">//我们视频中的用法  
  2. SAXReader reader = newSAXReader();  
  3. InputStream in =Thread.currentThread().getContextClassLoader().getResourceAsStream("sys_config.xml");  
  4. Document doc=reader.read(in);</span>  
这种方法是把InputStream作为源来读取。

  1. <span style="font-size:18px;">//使用文件作为源  
  2. SAXReader reader = newSAXReader();  
  3. StringxmlName = "../aaa.xml";  
  4. FilexmlFile = new File(xmlAddress);//转为file  
  5. Document doc=reader.read(xmlFile);</span>  

read方法得到的Document对象就代表了整个XML,这样我们就等于拿到了整个xml文档。

 

    读取后的第二步,就是得到Root节点:使用getRootElement方法。

    Element  elt = doc.getRootElement();

    得到根节点后,我们就可以结合之前学习的DOM知识来操作文档。

 

    另外值得一提的是DOM4J对XPath有良好的支持,如访问一个节点,可直接用XPath选择

    //获取foo下面所有bar节点,返回List

    List list =document.selectNodes( //foo/bar );


    //获取foo/bar下面author节点,这里使用的是返回找到的第一个匹配节点

    Node node =document.selectSingleNode(//foo/bar/author);

    这里使用的是selectSingleNode方法,此方法返回找到的第一个匹配节点,如果没有匹配的节点就返回 null。这个方法貌似只对IE有效,待考证。

    关于XPath还有很多其他的条件格式,这里不再赘述,其实有的时候XPath更像一种选择器,只要你给出条件即可。

    通过以上的一些方法,我们可以得到XML整个文档、文档的根节点、符合某个条件的所有节点以及单独拿到某个节点。有了这些方法,基本上可以应付我们的基本需求,这里也只是对DOM4J读取XML文件做简要介绍,以满足基本的需求,如果有兴趣大家可以深入研究。