XML文件解析
dom4j
SaxReader对象
read(类名.class.getClassLoader().getResourceAsStream("beans.xml"))
加载执行xml文档 返回一个Document对象
Document对象
getRootElement()获取根元素 返回 Element对象
Element对象
elements(..) 获取指定名称的所有子元素 也可以不指定名称 返回 子元素Element对象 的 list集合
element() 获取指定名称的第一个子元素 不指定 就取 第一个子元素
getName()获取当前元素的元素名-->标签名
attributeValue("属性名") ; 获取指定属性名的属性值
elementText()获取指定名称子元素的文本值
getText()获取当前元素的文本内容
xpath
由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便,结合XPATH就可以直接获取到某个元素
默认的情况下,dom4j不支持xpath,如果想要在dom4j里面使用xpath,需要引入支持xpath的jar包 `jaxen-1.1.6.jar
SaxReader对象
read(类名.class.getClassLoader().getResourceAsStream("beans.xml"))
加载执行xml文档 返回一个 Document 对象
Document对象
List<Node> selectNodes("xpath表达式"),用来获取多个节点
Node selectSingleNode("xpath表达式"),用来获取一个节点
xpath表达式
/AAA/DDD/BBB: 表示一层一层的,AAA下面 DDD下面的BBB
//BBB: 表示和这个名称相同,表示只要名称是BBB 都得到
/*: 所有元素
BBB[1]:表示第一个BBB元素
BBB[last()]:表示最后一个BBB元素
//BBB[@id]: 表示只要BBB元素上面有id属性 都得到
//BBB[@id='b1'] 表示元素名称是BBB,在BBB上面有id属性,并且id的属性值是b1
Node 对象可以强转成 Element 对象 然后使用 Element对象的方法 使用 方法跟dome4j一样