使用dom4j解析xml文档
先要导入包,

导入以后,新建一个xml文档,写入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
<web-app version="1.0">
<servlet>
<servlet-name>1</servlet-name>
<servlet-class>xxx</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>1</servlet-name>
<url-pattern>22</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list>
</web-app>然后写类:
package dom4j;
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 Testdom4j() {
try {
//1.获取解析器
SAXReader sr =new SAXReader();
//2.获取document文档对象
Document doc= sr.read("src/dom4j/web.xml");
//3.获取根元素
Element rootElement = doc.getRootElement();
// System.out.println("根元素"+rootElement.getName());//获取根元素的名称
// System.out.println(rootElement.attributeValue("version"));//获取根元素中verion的属性值
//4.获取根元素的下一个子元素
List<Element> children = rootElement.elements();
//5.遍历子元素
for (Element element : children) {
if("servlet".equals(element.getName())){//如果元素的名字等于servlet
Element servletName = element.element("servlet-name");
Element servletClass = element.element("servlet-class");
System.out.println(servletName.getText());//输出servletName的文本内容
System.out.println(servletClass.getText());//输出servletClass的文本内容
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}使用Junit测试之后:

这样就可以获取,根元素,以及子元素,各种属性值等,更多方法如下:
elements()获取指定名称的所有子元素
element()获取指定名称的首个子元素
elementText()获取指定名称元素的文本值
思考:在写的过程中,要用list来接受,并且遍历根元素的所有子元素,为了加快效率,可以使用泛型,这样在后来的遍历中,直接什么也不用输入,只需要输入循环体里面的内容,减少了很多麻烦
相关推荐
与卿画眉共浮生 2020-10-14
xiyang 2020-08-21
XGQ 2020-07-04
Andrewjdw 2020-05-29
Yakamoz 2020-05-26
行吟阁 2020-05-18
88491874 2020-04-30
方志朋 2020-05-30
spring艳 2020-05-16
baijinswpu 2020-07-29
leonranri 2020-07-26
zhongliwen 2020-07-05
麋鹿麋鹿迷了路 2020-07-05
zengyu00 2020-07-05
CoderBoy 2020-06-28
whbing 2020-06-28
绝望的乐园 2020-06-27
wellfly 2020-06-26