public class Dom4j_test01 {
public static void main(String[] args) throws Exception {
SAXReader saxreader = new SAXReader();
Document document=saxreader.read("src/p1.xml");
Element element =document.getRootElement();
Element p1 = element.element("p1");
Element sex1=p1.addElement("sex");
sex1.setText("nan");
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream("src/p1.xml"),OutputFormat.createPrettyPrint());
xmlWriter.write(document);
xmlWriter.close();
}
}
1、解析器2、解析文件生成document3、得到根节点
4、获得第一个p1标签5、在此标签下增加sex标签6、加内容
回写:7、xmlWriter8、写进document9、关闭流
private static void addSchool() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("src/p1.xml");
Element root = document.getRootElement();
Element p1 = root.element("p1");
List<Element> list = p1.elements();
Element school = DocumentHelper.createElement("school");
school.setText("hnnu");
list.add(1,school);
XMLWriter writer = new XMLWriter(new FileOutputStream("src/p1.xml"), OutputFormat.createPrettyPrint());
writer.write(document);
writer.close();
}
1、解析器2、解析文件生成document3、得到根节点
4、得到第一个p1标签5、得到第一个标签下的标签列表6、DocumentHelper创建一个新标签
7、新标签添加文本内容8、列表根据index添加新标签
9回写
获取标签属性值:attributeValue(属性名称)
使用dom4j支持xpath的操作
/AAA/DDD/BBB |
---|
//BBB |
---|
//* |
---|
/AAA/BBB[1] |
---|
/AAA/BBB[last()] |
//BBB[@id] |
---|
//BBB[@id='b1'] |
---|
//BBB[@name='bbb'] |
默认情况下不支持,导入jaxen-1.1-beta-6.jar
selectNodes
selectSingleNode
private static void xpathTest() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("src/p1.xml");
List<Node> list=document.selectNodes("//name");
for (Node node : list) {
String s = node.getText();
System.out.println(s);
}
}
private static void firstName() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("src/p1.xml");
Node name=document.selectSingleNode("//p1[@id='aaa']/name");
String s =name.getText();
System.out.println(s);
}