xml文档的测试
查询 修改 删除 添加
导入jar包:
dom4j中使用到的方法
1.创建SaxReader对象
SAXReader reader = new SAXReader();
2.设置命名空间 (如果XML使用约束的话必须要设置)
reader.getDocumentFactory().setXPathNamespaceURIs(map);
-
SAXReader对象调用read方法,将当前XML文件,转换为Document对象
document = reader.read(file); -
获取根节点
root = document.getRootElement(); -
通过父签添加子标签(元素)
Element element = root.addElement(“标签名”);//返回值就是要添加的元素对象
给子标签添加值
element.setText(“标签值”);
- 给当前标签添加属性:xxx ,值是:xxx
Element attribute = linkman.addAttribute(“属性名”,“值”);
通过当前元素获取属性对象
element.attribute(“属性名”);
通过属性对象attribute设置属性值
attribute.setText(“值”);
通过属性对象attribute获取属性值
String 值 = attribute.getText();
- 获取当前元素标签名
String name = e.getName();
获取当前元素标签值
String text = e.getText();
-
获取指定名字的子标签(元素)
root.element(String name); -
获取所有子标签(元素)
root.elements(); -
删除子元素,必须通过父元素remove(子元素对象)完成
父元素.remove(子元素对象);
使用XPath去获取xml文件中元素
// 第一种形式 表示一层一层的,a下面 b下面的c
Node adess = contacts.selectSingleNode("/contacts/linkman/address");
System.out.println(adess.getText());
// 第二种形式表示和这个名称相同,表示只要名称是b,都得到
List<Node> groupNodes = contacts.selectNodes("//group");
for (Node group : groupNodes) {
System.out.println(group.getText());
}
// 第三种形式:所有元素
System.out.println("========");
List<Node> allNodes = contacts.selectNodes("//*");
for (Node node : allNodes) {
System.out.println(node.getName());
}
// 第四种形式表示第一个a元素
Node linkman1 = contacts.selectSingleNode("linkman[1]");
System.out.println(linkman1);
//表示最后一个a元素
Node linkman2 = contacts.selectSingleNode("linkman[last()]");
System.out.println(linkman2);
System.out.println("========");
//第五种形式: 表示只要a元素上面有id属性,都得到
List<Node> idNodes = contacts.selectNodes("linkman[@id]");
for (Node node : idNodes) {
System.out.println(node);
}
System.out.println("=========");
//第六种形式 :表示元素名称是a,在a上面有id属性,并且id的属性值是b1
Node linkman3 = contacts.selectSingleNode("linkman[@id='link2']");
System.out.println(linkman3);