java(Dom4j)与xml配置文件(二)

添加节点

public static void main(String[] args) throws Exception {
  /*
   * 1、解析xml文档,将xml文档转换Dom4j树 2、利用dom4j树提供的导航方法找到需要修改的节点
   * 3、修改指定的节点,或者在指定的节点添加新的节点 4、写入到dom4j树document中,写入修改后的xml文件中
   */
  // 创建解析器对象
  SAXReader saxReader = new SAXReader();
  // 设置过滤空格
  saxReader.setStripWhitespaceText(true);
  // 装载xml文件并解析
  Document doc = saxReader.read(new File("src\\book1.xml"));
  // 获取根元素名称
  Element root = doc.getRootElement();
 
  //创建一个地址元素
  Element address = DocumentHelper.createElement("address");
  address.setText("保定");
  //获取根元素的子元素的集合
  List list = root.elements("book");
  Element book2 = (Element) list.get(2);
  List list2 = book2.elements();
  list2.add(2, address);

  OutputFormat format = new OutputFormat("      ", true, "UTF-8");

  XMLWriter xw = new XMLWriter(new FileWriter("src\\book1.xml"), format);

  xw.write(doc);
  xw.close();
}
}

解析xml文档中的元素名称及属性名称

public static void main(String[] args) throws Exception{
  //创建解析实体对象
  SAXReader saxReader = new SAXReader();
  //装载并解析book.xml文件
  Document doc = saxReader.read(new File("src\\books.xml"));
  //获取根元素
  Element root = doc.getRootElement();
  //打印根元素名称
  System.out.println(root.getName());
  //调用显示方法
  display(root);
}
//属性解析方法
private static void displayAttbute(Element root) {
  //获取根元素的子元素的所有属性的集合
  List<Attribute> list = root.attributes();
  //遍历集合
  for(Attribute entity:list){
   System.out.println(entity.getName()+"---"+entity.getValue());
  }
}
//标签解析方法
private static void display(Element root) {
  //获取根元素的所有子元素的集合
  List<Element> list = root.elements();
  //遍历集合
  for(Element entity:list){
   //打印元素的名称
   System.out.println(entity.getName());
   //调用解析属性的方法
   displayAttbute(entity);
   //如果entity元素有文本
   if(entity.isTextOnly()){
    //打印文本
    System.out.println(entity.getText());
   }else{
    //调用自身
    display(entity);
   }
  }
}

你可能感兴趣的:(java,xml)