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. django修改认证模型类

    1.我在一个子应用下面创建了一个apps目录,且在apps下又创建了一个子应用users,结构如下图: 2.在users的models.py中 from django.db import models ...

  2. adb命令之monkey使用

    一.Monkey介绍Monkey是Android中的一个命令行工具,可在模拟器或实际设备中运行.通过向系统发送伪随机的用户事件流(例如按键.触摸屏.手势操作等),来实现对开发中的应用程序进行压力测试, ...

  3. ubuntu - 程序运行的一些基础知识

    1.指定编码格式 -finput-charset=GB2312 指定 C 程序的编码方式为 GB2312,不指定时默认编码方式为 UTF-8 -fexec-charset=GB2312 指定 可执行程 ...

  4. python调用C库的方法

    主要介绍两种,一种是python的标准库内置的ctype,另一种是第三方的pybind11. 除此之外,还有其他的方案,例如,CFFI.Cython等等. 一.python的标准库ctype

  5. office365启动突然提示注册表错误,无法打开“规则”配置的解决方案

    感觉目前网上的资料,暂无清晰的解答,根据现象分析是outlook的原始邮件文件即psd文件中的规则相关字段存在问题,导致outlook无法打开. 因此网上的各种答疑如重装,调整注册表等等措施都是无效的 ...

  6. A Novel Sequential Method to Train Physics Informed Neural Networks for Allen Cahn and Cahn Hilliard Equations

    一种新的顺序方法去求解关于时间的方程.个人感觉论文很差.(方法不新颖,写作很无聊,排版也有问题,内容也表述不清). 本文提出一种利用单个神经网络,在连续时间段上顺序求解偏微分方程的新型方案.关键思想是 ...

  7. 安装gitlab的总结

    安装过程参考文档 http://www.linuxe.cn/post-520.html https://www.bilibili.com/read/cv4602641 备注要点: 1.gitlab安装 ...

  8. 常见的SPA首屏优化方式

    核心是加载和解析的性能优化 加载优化的核心是资源体积和首屏资源数量. 解析优化的核心是资源体积和代码的执行性能. 加载优化 通过webpack 的code splitting合理分包:   Code ...

  9. el-input 限制输入框只能输入数字和小数

    方法一: oninput ="value=value.replace(/[^\d]/g,'')" //只能输入数字 oninput ="value=value.repla ...

  10. nginx 解决 405 not allowed错误

    1.http nginx.conf文件 error_page 后 增加代码 error_page 405 =200 @405; location @405 { proxy_method GET; pr ...