package cn.itcast.DTD;
import java.io.File;import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/*
* XML解析方法:分3种:DOM,SAX,PULL,本案例是使用dom4j
* 解析器有JAXP,JDom,jsoup,dom4j,最常用dom4j
* 步骤如下
* 1.创建SAXReader对象,read(xml文件名)加载xml文件
* 2.创建Document对象,getRootElement获得根元素
* 3.Element对象
* a) elements(.....) 获得指定名称的所有子元素集合,然后可以用来遍历
* b) element(.....) 获得指定名称的第一个子元素
* c) getName() 获得当前元素的元素名
* d) attributeValue(...) 获得指定属性名的属性值
* e) elementText(...) 获得指定名称子元素的文本值
* f) getText() 获得当前元素的文本内容
*/
import org.junit.Test;
public class DTD_dom4j_Dema1 {
@Test
public void test() {
try {
SAXReader sr = new SAXReader();
Document docu = sr.read("src/web_dtd.xml");
Element rootElement = docu.getRootElement();
//System.out.println(rootElement.attributeValue("version"));//1.0
List<Element> list = rootElement.elements();
// for(Element e : list) {
// System.out.println(e.getName());//servletservlet-mapping welcome-file-list
// }
//Element childElement = rootElement.element("servlet-mapping");
//System.out.println(childElement.getName());//servlet-mapping
//System.out.println(childElement.elementText("url-pattern"));//http://www.baidu.com
Element childElement = rootElement.element("servlet-name");
Element kid = childElement.element("servlet-name");
String a = kid.getText();
System.out.println(a);
蓝色部分是报错的原因,我就想用写getText();方法获取文本,最后报了空指针,懵逼了大叔
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}