使用dom4j工具包对xml文件解析

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://www.example.org/web-app_2_5" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
            version="2.5">
    <servlet>
        <servlet-name>helloServlet</servlet-name>
        <servlet-class>xxxxxxxx</servlet-class>
    </servlet>        
            
    <servlet-mapping>
        <servlet-name>helloServlet</servlet-name>
        <url-pattern></url-pattern>
    </servlet-mapping>        
            
</web-app>            

解析xml文件的代码 需要一个dom4j的jar包

package cn.cc.xml.dom;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class TestDom4j {
    @Test
    public void testReadWebXML(){
        
        try {
            //1.获取解析器
            SAXReader saxReader=new SAXReader();
            //2.获得document文档对象
            Document doc=saxReader.read("src/cn/cc/xml/schema/web.xml");
            //3.获取根元素
            Element rootElement=doc.getRootElement();
            //System.err.println(rootElement.getName());//获取根元素的名称
            //System.out.println(rootElement.attributeValue("version"));//获取根元素中的属性
            //4.获取根元素下的子元素
            List<Element> childElements=rootElement.elements();
            //5.遍历子元素
            for (Element element : childElements) {
            //6.判断元素名称是否servlet
                if("servlet".equals(element.getName())){
                    //7.获取servlet-name元素
                    Element servletName=element.element("servlet-name");
                    //8.获取servlet-class元素
                    Element servletClass=element.element("servlet-class");
                    System.out.println(servletName.getText());
                    System.out.println(servletClass.getText());
                }
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
}

原文地址:https://www.cnblogs.com/benjamin77/p/9172102.html