基本使用
//读取xml
SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
// 获取根节点
Element root = document.getRootElement();
// 获取孩子节点
Iterator<Element> it1 = root.elementIterator();
// 获取属性
Iterator<Attribute> attributes = ele.attributeIterator();
/*
以上两个获取孩子节点和属性都是获取迭代器, 通过it.hasnext()方法可以遍历得到所有的节点和属性.
*/
// 获取节点名
ele.getName()
// 获取节点值
ele.getText()
// 获取属性名
ele.getBName
// 获取属性值
ele.getValue()
// 设置文本
ele.setText("张三");
//设置属性
ele.addAttribute("show", "yes");
//添加注释
ele.addComment("This is a test for dom4j ")
// 删除子节点
ele.remove(element);
创建XML
public class CreateXML {
public static void main(String[] args) throws Exception {
// 创建文档对象
Document document = DocumentHelper.createDocument();
// 创建根节点
Element root = document.addElement("root");
// 添加节点信息
Element auther1 = root.addElement("auther")
.addAttribute("name", "Tom") // 属性
.addAttribute("loation", "UK")
.addText("Tom Wang"); // 节点内容
Element auther2 = root.addElement("auther")
.addAttribute("name", "Ted")
.addAttribute("loation", "USA")
.addText("Ted Chen");
// 输出到xml文件
FileWriter out = new FileWriter("src/new.xml");
document.write(out);
out.close();
}
}
输出的内容为
<!--new.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<root>
<auther name="Tom" loation="UK">Tom Wang</auther>
<auther name="Ted" loation="USA">Ted Chen</auther>
</root>
修改XML
// 创建xml解析器对象reader
SAXReader reader = new SAXReader();
// 加载xml文件, 获取document对象
Document document = reader.read("src/test_xml/first.xml");
//选定节点属性集 xpath写法
List arrList = document.selectNodes("/books/book/@show")
Iterator arrIter = arrList.iterator();
//选定节点集
List list = document.selectNodes("/books/book/title")
Iterator texIter = list.iterator();
//修改节点属性
while (arrIter.hasNext()) {
Attribute attribute = (Attribute) iter.next();
if (attribute.getValue().equals("yes"))
attribute.setValue("no");
}
//修改节点文本内容
while (texIter.hasNext()) {
Element element = (Element) iter.next();
element.setText("xxx")
}
字符串转XML
String text = "<members> <member>sitinspring</member> </members>";
Document document = DocumentHelper.parseText(text);
XML转字符串
// 创建xml解析器对象reader
SAXReader reader = new SAXReader();
// 加载xml文件, 获取document对象
Document document = reader.read("src/test_xml/first.xml");
//xml转换成字符串
String memberXmlText=document.asXML();