使用dom4j解析XML文档 左手的ㄟ右手 2022-07-12 19:46 180阅读 0赞 1. xml文档解析方式: 1.1.sax(Simple API for XML)解析: 特点:逐行解析,不需要将数据存储在内存中,一般用于读取大型文档,只能进行查询操作. 1.2.dom解析: 特点:将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,可以进行增删改查的操作. 2. 解析的几种技术: 2.1. JAXP:sun公司提供支持DOM和SAX开发包 2.2.JDom:dom4j兄弟 2.3. jsoup:一种处理HTML特定解析开发包 2.4. dom4j:比较常用的解析开发包,hibernate底层采用。 3. dom4j进行查询操作步骤: 1.导入dom4j的jar包 2.创建一个saxReader对象 3.将xml文件加载到内存中,形成一棵dom树 4.根据dom树获取根节点 5.根据根节点的元素获取其他节点 6.遍历其他节点就能获取到标签体中的内容 6.1获取标签体中的内容 6.2获取标签中的属性 xml文档中的内容: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"> <servlet> <servlet-name>HelloMyServlet</servlet-name> <servlet-class>com.duda.HelloMyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloMyServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> dom4j的测试类: package com.dom4j; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Test_Dom4j { public static void main(String[] args) throws DocumentException { // 1.创建一个saxReader对象 SAXReader sr = new SAXReader(); // 2.将xml文件加载到内存中,形成一棵dom树 Document doc = sr.read("xml\\web.xml"); // 3.根据dom树获取根节点 Element root = doc.getRootElement(); // 4.根据根节点的元素获取其他节点 List<Element> list = root.elements(); // 5.遍历其他节点就能获取到标签体中的内容 for (Element element : list) { // 5.1获取标签体中的内容 String text = element.elementText("servlet-name"); System.out.println(text); } // 5.2获取标签中的属性 String value = root.attributeValue("version"); System.out.println(value); } } 输出结果: HelloMyServlet HelloMyServlet 2.5
还没有评论,来说两句吧...