xml文档解析dom4j的使用

tech2023-07-15  95

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);
最新回复(0)