解析xml文件
导包使用!!!!
用的不是太多,大多都在用json
@Test
public void test01() throws Exception {
//测试 xml文档的解析,使用dom4j
/**
* 1、导入dom4j的jar
* 2、创建解析器对象
* 3、使用解析器将xml文档加载到内存中转成document对象
* 4、通过文档对象获取文档的根节点
* 5、通过根标签获取所有的子标签
* 6.解析子标签集合
*/
SAXReader reader = new SAXReader();
Document document = reader.read("teachers.xml");//jar包放在项目路径下,相对路径会在项目下查找对应的资源
//System.out.println(document);
Element rootElement = document.getRootElement();
//rootElement.elementByID(arg0);//根据子标签的id获取子标签
List<Element> elements = rootElement.elements();
for (Element element : elements) {
System.out.println("标签名:"+element.getName());
System.out.println("id属性值:"+element.attributeValue("id"));
//获取正在遍历的子标签内的内容
Element nameEle = element.element("name");//获取内部的name子标签
System.out.println("name子标签的文本:"+nameEle.getText());
Element genderEle = element.element("gender");//获取内部的name子标签
System.out.println("gender子标签的文本:"+genderEle.getText());
Element ageEle = element.element("age");//获取内部的name子标签
System.out.println("age子标签的文本:"+ageEle.getText());
System.out.println("=====================================================");
}
}
Xpath查询,通过元素和属性查找
//如果解析文档指定路径下的某个标签,可以使用dom4j+xPath
//需要导入两个jar包: dom4j.jar + 它的依赖包 jaxen.jar[支持xpath路径语法的jar包]
@Test
public void test02() throws Exception {
//创建解析器对象
SAXReader saxReader = new SAXReader();
//通过解析器将文档读取到内存中转为document对象
Document document = saxReader.read("src/girlteachers.xml");
//System.out.println(document);
//通过xPath语法 快速查找id=9527 老师的name 值
//xpath路径: //teacher[@id='9527']/name
//dom4j document对象提供了支持xpath路径的方法: select
Element nameEle = (Element) document.selectSingleNode("//teacher[@id='9527']/name");
System.out.println("name:"+ nameEle.getText());
}