package com.wy.xml;

import java.io.File;
import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
* xml解析:读取
* @author Dnmngge
*
*/
public class XmlTest {

public static void main(String[] args) throws Exception {
  //1、创建SAXReader对象用于读取xml文件
  SAXReader reader = new SAXReader();
  //2、读取xml文件,得到Document对象
  Document doc = reader.read(new File("src/scores2.xml"));
  //3、获取根元素
  Element root = doc.getRootElement();
  //4、获取根元素下所有子元素
  Iterator<?> it = root.elementIterator();  
  while(it.hasNext()) {
    //取出元素
    Element e = (Element) it.next();
    System.out.println(e.getName());
    //获得id属性
    Attribute id = e.attribute("id");
    System.out.println(id.getName()+"="+id.getValue());
    //获取student的子元素
    Element name = e.element("name");
    Element course = e.element("course");
    Element score = e.element("score");
    //打印
    System.out.println(name.getName()+"="+name.getStringValue());
    System.out.println(course.getName()+"="+course.getText());
    System.out.println(score.getName()+"="+score.getText());
    System.out.println("--------------");
    }
  }

}

package com.wy.xml;

import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
* xml解析:创建
* @author Dnmngge
*
*/
public class XmlTest2 {

public static void main(String[] args) throws Exception {
  //1、通过DocumentHelper生成一个Document对象
  Document doc = DocumentHelper.createDocument();
  //2、添加并得到根元素
  Element root = doc.addElement("books");
  //3、为根元素添加子元素
  Element book = root.addElement("book");
  //4、为book元素添加属性
  book.addAttribute("id", "No.1");
  //5、为book添加子元素
  Element name = book.addElement("name");
  Element author = book.addElement("author");
  Element price = book.addElement("price");
  //6、为子元素添加文本
  name.addText("java从入门到放弃");
  author.addText("负能量");
  price.addText("1000");
  //7、格式良好的输出
  OutputFormat format = OutputFormat.createPrettyPrint();
  XMLWriter writer = new XMLWriter(new FileWriter(
  new File("src/book2.xml")), format);
  writer.write(doc);
  //8、释放资源
  writer.close();
  }

}

XML_DOM4J_20200415的更多相关文章

随机推荐

  1. 微信小程序-通过绑定事件进行传值

    一.数据绑定: <view bindtap="node" data-num="5"> 点击传值:{{nums}} </view> dat ...

  2. HIVE - HIVEQL学习笔记

    Hive Learning HIVEQL和MYSQL最为接近 数据操作 SHOW TABLES IN crm_integration Show tables 'dim_con*' DESCRIBE E ...

  3. 新建zabbix数据库

    1.安装mysqldnf install -y @mysqlsystemctl start mysqld.servicesystemctl enable mysqld.service初始化mysqlm ...

  4. [原创] CSS自定义IOS苹果,Android安卓的CheckBox 效果,可以根据文字大小变化而变化,内框显示文字,另外可自定大小,自定颜色

    在经过对网上一些自定CheckBox的一番研究之后,现在综合讲一下该样式实现的技巧. 先上图: 图中已展示了多种样式,实现的原理很简单,一个外Box,一个内Box,外Box显示背景色,内Box显示白色 ...

  5. ICPC2020 沈阳

    F-Kobolds and Catacombs 牛客网 题意:对于\(n(n<=10^6)\)个数的序列,划分区间,每个区间内部从小到大排序,要求最后整个序列单调不下降,求最多可以划分为多少个区 ...

  6. es 集群并设置密码

    1. 生成证书 bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""2. el ...

  7. http头部meta 作用

    <meta charset="utf-8"> <!-- 设置文档字符编码 --> <meta http-equiv="x-ua-compat ...

  8. 域名证书https配置问题

    目前默认通配证书只适配2级通配.例如配置2级域名的通配证书 https://a.baidu.com.如果想配置三级域名的https 需购买3级通配证书.这样才可以配置三级域名. https://a.b ...

  9. 6. C语言bool类型

    C89没有定义布尔类型,所以C语⾔判断真假时以0为假,⾮0为真.所以我们通常使⽤逻辑变量的做法: 1 //宏定义布尔类型 2 3 #define BOOL int 4 5 #define TRUE 1 ...

  10. Docker emqx实践

    把emqx服务迁移到另一台服务器上 1.新服务器安装docker apt  install docker.io 1.从服务器上导出镜像 导出镜像文件: docker export 55d48d3a13 ...