DOM4J读取XML文件

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

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

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

SAXReader为例:

//我们视频中的用法
SAXReader reader = newSAXReader();
InputStream in =Thread.currentThread().getContextClassLoader().getResourceAsStream("sys_config.xml");
Document doc=reader.read(in);
这种方法是把 InputStream 作为源来读取。

//使用文件作为源
SAXReader reader = newSAXReader();
StringxmlName = "../aaa.xml";
FilexmlFile = new File(xmlAddress);//转为file
Document doc=reader.read(xmlFile);

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文件做简要介绍,以满足基本的需求,如果有兴趣大家可以深入研究。

你可能感兴趣的:(DOM4J读取XML文件)