xml解析 element.element("stu") : 返回该元素下的第一个stu元素 注:工程有感叹号,99%是build path多了一些jar文件或jar包冲突. |
MainTest:
package com.yuming.test;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* xml解析
* <p>Title: MainTest</p>
* <p>Description: </p>
* <p>Company: www.itcast.cn</p>
* @version 1.0
*/
public class MainTest {
public static void main(String[] args) {
try {
//1.创建sax读取对象
SAXReader reader = new SAXReader();
//2.指定解析的xml源文件
Document document = reader.read(new File("src/xml/stus.xml"));
//3.得到元素
//得到根元素
Element rootElement = document.getRootElement();
//System.out.println(rootElement.getName()); //-->stus
//获得根元素下的子元素
//Element element = rootElement.element("stu");
//System.out.println(rootElement.element("stu").getName());//--->stu
//获得根元素下的子孙元素 age的值
//方式1 getStringValue()
//System.out.println(rootElement.element("stu").element("age").getStringValue());
//方式2 getText()
//System.out.println(rootElement.element("stu").element("age").getText());
//获取根元素下的所有子元素 //不包括子孙元素
List<Element> elements = rootElement.elements();
//System.out.println(elements.size());//2
//遍历所有的stu元素
for (Element element : elements) {
//获取stu元素下面的name元素
String name = element.element("name").getText();
String age = element.element("age").getText();
String address = element.element("address").getText();
System.out.println("name="+name+",age="+age+",address="+address);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
stus.xml:
<?xml version="1.0" encoding="UTF-8"?>
<stus>
<stu>
<name>张三</name>
<age>18</age>
<address>北京</address>
</stu>
<stu>
<name>李四</name>
<age>20</age>
<address>上海</address>
</stu>
</stus>
运行结果: