xml文档解析dom4j的使用

xml文档的测试
查询 修改 删除 添加
导入jar包:
在这里插入图片描述

dom4j中使用到的方法

1.创建SaxReader对象
SAXReader reader = new SAXReader();

2.设置命名空间 (如果XML使用约束的话必须要设置)
reader.getDocumentFactory().setXPathNamespaceURIs(map);

  1. SAXReader对象调用read方法,将当前XML文件,转换为Document对象
    document = reader.read(file);

  2. 获取根节点
    root = document.getRootElement();

  3. 通过父签添加子标签(元素)
    Element element = root.addElement(“标签名”);//返回值就是要添加的元素对象

给子标签添加值
element.setText(“标签值”);

  1. 给当前标签添加属性:xxx ,值是:xxx
    Element attribute = linkman.addAttribute(“属性名”,“值”);

通过当前元素获取属性对象
element.attribute(“属性名”);

通过属性对象attribute设置属性值
attribute.setText(“值”);

通过属性对象attribute获取属性值
String 值 = attribute.getText();

  1. 获取当前元素标签名
    String name = e.getName();

获取当前元素标签值
String text = e.getText();

  1. 获取指定名字的子标签(元素)
    root.element(String name);

  2. 获取所有子标签(元素)
    root.elements();

  3. 删除子元素,必须通过父元素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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值