1、读取xml信息
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student1 id="001">
<姓名>残缺的孤独</姓名>
<学号>201401021</学号>
<地址>北京</地址>
<座右铭>要听话</座右铭>
</student1>
<student2 id="002">
<姓名>越长大越可怕</姓名>
<学号>201102</学号>
<地址>朝阳区</地址>
<座右铭>学会坚强</座右铭>
</student2>
</students>
public void saxrXml() throws DocumentException {
SAXReader saxReader = new SAXReader();
Document read = saxReader.read(getResourcesStream("student.xml"));
// 获取根节点
Element rootElement = read.getRootElement();
getNodes(rootElement);
}
/**
* 读取xml的路径,
* getClass().getClassLoader()获取到的是resource目录
* @param xmlPath
* @return
*/
private InputStream getResourcesStream(String xmlPath){
return this.getClass().getClassLoader().getResourceAsStream(xmlPath);
}
public static void getNodes(Element rootElement) {
System.out.println("获取当前名称:" + rootElement.getName());
// 获取属性信息
List<Attribute> attributes = rootElement.attributes();
for (Attribute attribute : attributes) {
System.out.println("属性:" + attribute.getName() + "---" + attribute.getText());
}
// 获取属性value
String value = rootElement.getTextTrim();
if (!StringUtils.isEmpty(value)) {
System.out.println("value:" + value);
}
// 使用迭代器遍历,继续遍历子节点
Iterator<Element> elementIterator = rootElement.elementIterator();
while (elementIterator.hasNext()) {
Element next = elementIterator.next();
getNodes(next);
}
}
2、动态创建一个xml
/**
* 创建一个xml
*/
public void dom4jXml(){
//1.自己创建Document对象
Document document = DocumentHelper.createDocument();
//创建根节点
Element root = DocumentHelper.createElement("students");
document.setRootElement(root);
//root下的子节点
Element name = root.addElement("姓名");
Element age = root.addElement("年龄");
//子节点赋值
name.setText("大佬牛");
age.setText("55");
getNodes(root);
}