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. Navicate破解安装

    1.安装Navicate客户端     2. 注意安装完毕不要打开navicate,打开后后面可能出现rsa public key not found之类的错误,直接点击注册机,选择版本,点击patc ...

  2. (转载)私人问卷收集系统-Surveyking问卷收集系统

    前言 但凡提及问卷收集系统,问卷星与腾讯问卷通常都为大家首选问卷调查系统. 担心数据安全,海量问卷管理不便,工作流创建困难?快速部署自有问卷调查系统开始你的问卷调查之旅. 无论是问卷调查,考试系统,公 ...

  3. perl正则

    名字 表达式 如果子表达式成功则 - positive lookahead (零宽度正预测先行断言 ) (?=subexp) 如果匹配到右边则成功 negative lookahead (零宽度负预测 ...

  4. C语言学习---星花与取地址&----以及多级指针

    #include<stdio.h> int main { //对一个表达式加* , 就会对表达式减一级星花*, //如果对表达式取&, 就会加一级* int* p; int** q ...

  5. C# 实现窗体底部滚动字幕

    使用的控件 panel和label及其定时器. 实现原理 通过定时器定时将label的位置在panel上进行移动,实现滚动的视觉效果,此处将label放在panel上的好处是可以单独设置滚动字母的背景 ...

  6. .Net Standard .Net Framework .Net Core 版本对应

  7. docker容器启动报错Unable to access jarfile

    1.错误表现 Errot: Unable to access jarfile /opt/run-java/deployments/chiano.jar 2.原因:容器的基础镜像对jar的权限有要求 3 ...

  8. laravel 内置auth()登录

    auth()命令 auth()->attempt()        登录验证 auth()->check        判断是否登录,有没有session缓存 auth()->log ...

  9. 12种SQL注入报错方式

    1.通过floor报错,注入语句如下: and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from info ...

  10. memoの颜色配置

    Visual Studio的配置 没啥说的,直接上网站: https://studiostyl.es/schemes/create 顺便保存一份我的配置 一些有趣的插件:Amigo 主题配色,还是Bl ...