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

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
好的,这个问题我可以回答。以下是Java使用dom4j读取XML文件的基本步骤: 1. 导入dom4j的jar包 你可以通过maven或手动下载jar包的方式导入dom4j的jar包。 2. 创建SAXReader对象 SAXReaderdom4j的核心类,用于读取XML文件并将其转换为Document对象。 3. 加载XML文件 使用SAXReader对象的read方法加载XML文件,并将其转换为Document对象。 4. 获取根节点 通过Document对象的getRootElement方法获取XML文件的根节点。 5. 遍历节点 可以使用递归的方式遍历XML文件的节点,获取节点的名称、属性、子节点等信息。 下面是一个简单的示例代码: ```java import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import java.io.File; public class Dom4jDemo { public static void main(String[] args) { try { // 创建SAXReader对象 SAXReader reader = new SAXReader(); // 加载XML文件 Document document = reader.read(new File("example.xml")); // 获取根节点 Element root = document.getRootElement(); // 遍历节点 print(root); } catch (Exception e) { e.printStackTrace(); } } public static void print(Element element) { // 输出节点名称 System.out.println(element.getName()); // 输出节点属性 List<Attribute> attributes = element.attributes(); for (Attribute attribute : attributes) { System.out.println(attribute.getName() + ": " + attribute.getValue()); } // 输出子节点 List<Element> elements = element.elements(); for (Element e : elements) { print(e); } } } ``` 以上是一个简单的dom4j读取XML文件的示例代码,希望能对你有所帮助。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值