解析读取XML

public static void main(String[] args) {//1获取SaxReader对象SAXReader reader=new SAXReader();try {//2使用Saxrreader对象加载xml文件,返回Document对象Document document=reader.read(new File("student.xml"));//3使用document对象或根元素Element rootele=document.getRootElement();//4获取子元素的集合(获取的是student子元素的集合)List<Element> lsstu_ele=rootele.elements("student");System.out.println("student元素的个数:"+lsstu_ele.size());//遍历student元素for (Element stuele : lsstu_ele) {/***********************************//获取student元素下的子元素Element sid_ele=stuele.element("sid");Element sname_ele=stuele.element("sname");Element sex_ele=stuele.element("sex");Element address_ele=stuele.element("address");Element age_ele=stuele.element("age");//获取每个子元素的文本内容System.out.println("编号:"+sid_ele.getText());System.out.println("姓名:"+sname_ele.getText());System.out.println("性别:"+sex_ele.getText());System.out.println("地址:"+address_ele.getText());System.out.println("年龄:"+age_ele.getText());System.out.println("========================");**************************************///获取每个子元素的文本内容System.out.println("编号:"+stuele.elementText("sid"));System.out.println("姓名:"+stuele.elementText("sname"));System.out.println("性别:"+stuele.elementText("sex"));System.out.println("地址:"+stuele.elementText("address"));System.out.println("年龄:"+stuele.elementText("age"));System.out.println("========================");}} catch (DocumentException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}

向xml文件中添加节点并写入文件保存;

public static void main(String[] args) {//1创建SaxReader对象SAXReader reader=new SAXReader();try {//2读取xml文档,并返回document对象Document document=reader.read(new File("student.xml"));//3获取根元素Element rootele=document.getRootElement();//4在根元素下添加student子元素Element st_ele=rootele.addElement("student");//在新增的student元素下添加其他子元素Element sid_ele=st_ele.addElement("sid");Element sname_ele=st_ele.addElement("sname");Element sex_ele=st_ele.addElement("sex");Element address_ele=st_ele.addElement("address");Element age_ele=st_ele.addElement("age");//在每个子元素下添加内容Scanner sc=new Scanner(System.in);System.out.println("输入编号:");sid_ele.setText(sc.next());System.out.println("输入姓名:");sname_ele.setText(sc.next());System.out.println("输入性别:");sex_ele.setText(sc.next());System.out.println("输入地址:");address_ele.setText(sc.next());System.out.println("输入年龄:");age_ele.setText(sc.next());//创建字节输出流对象FileOutputStream fout=new FileOutputStream("student.xml");//创建缓冲区字符输出流对象BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fout, "utf-8"));//写文档到xml文件
            document.write(bw);bw.flush();bw.close();System.out.println("增加成功!");} catch (DocumentException e) {// TODO Auto-generated catch block
            e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}

修改xml 文件中的节点并写入文件保存;

public static void main(String[] args) {Scanner sc=new Scanner(System.in);//1创建SaxReader对象SAXReader reader=new SAXReader();try {//2读取xml文档,并返回document对象Document document=reader.read(new File("student.xml"));//3获取根元素Element rootele=document.getRootElement();//4获取student子元素的集合List<Element> lsst_ele=rootele.elements("student");System.out.println("请输入要修改的学生编号:");String sid=sc.next();for (Element stu_ele : lsst_ele) {if(stu_ele.elementText("sid").equals(sid)){System.out.println("输入姓名:");stu_ele.element("sname").setText(sc.next());System.out.println("输入性别:");stu_ele.element("sex").setText(sc.next());System.out.println("输入地址:");stu_ele.element("address").setText(sc.next());System.out.println("输入年龄:");stu_ele.element("age").setText(sc.next());break;}}//创建字节输出流对象FileOutputStream fout=new FileOutputStream("student.xml");//创建缓冲区字符输出流对象BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fout, "utf-8"));//写文档到xml文件
            document.write(bw);bw.flush();bw.close();System.out.println("修改成功!");} catch (DocumentException e) {// TODO Auto-generated catch block
            e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}

删除xml文件中的节点

public static void main(String[] args) {Scanner sc=new Scanner(System.in);//1创建SaxReader对象SAXReader reader=new SAXReader();try {//2读取xml文档,并返回document对象Document document=reader.read(new File("student.xml"));//3获取根元素Element rootele=document.getRootElement();//获取要移除的学生编号System.out.println("请输入要删除的学生编号:");String sid=sc.next();//获取student元素的集合List<Element> lsstu_ele=rootele.elements("student");for (Element stu_ele : lsstu_ele) {//在元素中查找学生编号内容是否与输入的一致if(stu_ele.elementText("sid").equals(sid)){rootele.remove(stu_ele);//删除整个student元素System.out.println("元素删除成功!");break;}}//创建字节输出流对象FileOutputStream fout=new FileOutputStream("student.xml");//创建缓冲区字符输出流对象BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fout, "utf-8"));//写文档到xml文件
            document.write(bw);bw.flush();bw.close();System.out.println("移除成功!");} catch (DocumentException e) {// TODO Auto-generated catch block
            e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}

xml读写的工具类方法示例

    /*** 将Document对象写入到xml文件* @throws IOException * */public static void XmlToFile(Document doc) throws IOException{//创建字节输出流对象FileOutputStream fout=new FileOutputStream(new File("student.xml"));//创建字节流缓冲区,加快写出速度BufferedOutputStream bout=new BufferedOutputStream(fout);//创建字符输出流对象BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(bout, "utf-8"));doc.write(bw);bw.flush();bw.close();System.out.println("写xml文件成功");}/*** 从xml文件中获取学生的对象集合* */public static List<Student> fileToList(){SAXReader reader=new SAXReader();List<Student> lsst=new ArrayList<Student>();try {Document doc=reader.read(new File("student.xml"));//获取根元素Element root_ele=doc.getRootElement();//从xml文件获取student子元素集合List<Element> lsst_ele=root_ele.elements("student");if(lsst_ele!=null&&!lsst_ele.isEmpty()){//有student子元素存在for (Element stu_ele : lsst_ele) {Student st=new Student();st.setSid(stu_ele.elementText("sid"));st.setSname(stu_ele.elementText("sname"));st.setSex(stu_ele.elementText("sex"));st.setAddress(stu_ele.elementText("address"));st.setAge(Integer.parseInt(stu_ele.elementText("age")));lsst.add(st);//将学生对象加入到集合中
                }}} catch (NumberFormatException e) {// TODO Auto-generated catch block
            e.printStackTrace();} catch (DocumentException e) {// TODO Auto-generated catch block
            e.printStackTrace();}return lsst;}

转载于:https://www.cnblogs.com/YLQBL/p/6599804.html

Dom4J读写xml相关推荐

  1. dom4j读写xml文件

    dom4j读写xml文件 首先我们给出一段示例程序: import java.io.File; import java.io.FileWriter; import java.util.Iterator ...

  2. Dom4j下载及使用Dom4j读写XML简介

    要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/ 目前最新dom4j包下载地址:http://nchc.dl.sourcefor ...

  3. java dom4j 写xml文件_Java实现——Dom4j读写XML文件

    1. dom4j概述 解析DOM4J是一个开源XML解析包,采用了Java集合框架并完全支持DOM,SAX和JAXP. 最大的特色是使用了大量的接口,主要接口都在org.dom4j里定义. 2. do ...

  4. Java实现——Dom4j读写XML文件

    1. dom4j概述 解析DOM4J是一个开源XML解析包,采用了Java集合框架并完全支持DOM,SAX和JAXP.最大的特色是使用了大量的接口,主要接口都在org.dom4j里定义. 2. dom ...

  5. dom4j的读写XML文件

    java用dom4j读写xml很方便,工作之余,做了一点小总结.xml文件格式如下: <?xml version="1.0" encoding="UTF-8&quo ...

  6. java中的DOM4J解析XML

    1.DOM4J是目前使用非常广泛的一种解析XML技术,与DOM相比,他的使用更加方便,操作简单! 2.DOM4J是一个易用的,开源的库,可以用于XML.XPath.XSLT等. 3.DOM4J的主要接 ...

  7. dom4j的读写xml文件,读写xml字符串

    百度了一些博客,大同小异,在选取jar包工具的时候大概看了下,大抵是jdom原始,dom4j优秀.于是做了些练习. 参考:http://www.cnblogs.com/mengdd/archive/2 ...

  8. 使用Dom4j操作XML数据

    --------------siwuxie095 dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 XML 数据 特点:性能优异.功能强大.极端易用 dom ...

  9. DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...

    Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM开发的.与JDOM不同的是,dom4j使用接口和抽象的人分离出来而后独立基类,虽然Dom4j的API相对要复杂一些,但它提供了 ...

最新文章

  1. ruby中DBI连接MySQL数据库步骤详解
  2. Android中关于SQLite数据库的一些知识
  3. 扩展枚举功能的两种方法
  4. 信号之函数的可重入性
  5. What's VPC (by quqi99)
  6. APPKIT打造稳定、灵活、高效的运营配置平台
  7. 今天用充QQ币的时候,发现选择网银的时候,竟然会跳出一个错误
  8. COJ 1700:联通与次联通
  9. Java实验2 Java语言基础
  10. LoggingFilter Session 以及Async
  11. atitit.404错误的排查流程总结vOa6
  12. 【竞赛篇-国创(大创)线上报告撰写(常用套话总结)】季度报告、中期报告、结题报告怎么写,用什么格式,附件传什么比较好
  13. win7无法查看win10工作组计算机,win7不显示工作组解决方法
  14. websocket协议和服务实现
  15. 大数据开发技术课程报告(搭建Hadoop完全分布式集群操作集群)
  16. JavaScript:函数的可选参数
  17. MTK 平台TP调试遇坑
  18. 2023 IEEE Fellow出炉:唐立新、宗成庆、朱军、姬水旺、李佳等入选
  19. PS长图快速切片_ps基础(PS常用工具详解一)
  20. java 学习之 字符反写

热门文章

  1. 解决linux下终端无法输入的假死问题
  2. Qt笔记——添加菜单图片/添加资源文件
  3. mangTomany 自关联之个人感悟
  4. Selenium学习之==Switch与SelectApi接口详解
  5. (转)script标签到底该放在哪里
  6. 第一阶段冲刺 第八天
  7. 2001年分区联赛提高组之二_数的划分_ssl1016_dfs
  8. Python学习笔记之函数(一)
  9. Linux重要的热键[Tab]、[Ctrl]-c、[Ctrl]-d介绍
  10. Oracle的dbf文件迁移