前言
最近再看mybatis框架中,我们知道底层中,好多xml都是通过dom4j来解析。为了回顾以前的知识点,重新来认识了一下dom4j。
二话不说直接来上代码
首先先建立一个配置文件,让dom4j来进行解析我们就随便建立了一个。
user.xml

<hibernate-mapping><class name="com.test.user" table="userTabel"><property name="userName" value="李三"></property><property name="password" value="密码"></property></class>
</hibernate-mapping>

然后是我们的读取类 XmlParse

package com.test.xml;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;public class XmlParse {public static void main(String[] args) {SAXReader saxReader = new SAXReader();Document document = null;try {//读取配置文件document = saxReader.read(new File("user.xml"));//获取根节点Element rootElement = document.getRootElement();//获取根节点的下的元素Element classElement = rootElement.element("class");//根据属性名获取值String name = classElement.attributeValue("name");String table = classElement.attributeValue("table");System.out.println("class"+":"+name+",table:"+table);List<Element> elements = classElement.elements();for (Element propElement:elements) {String userName = propElement.attributeValue("name");String value = propElement.attributeValue("value");System.out.println("userName:"+userName+",value:"+value);}//xpathList<Node> xPathList = document.selectNodes("//hibernate-mapping/class/property");for (Node n:xPathList) {String userName = n.getName();String names = n.valueOf("@name");String value = n.valueOf("@value");System.out.println("userName:"+names+",value:"+value);}} catch (Exception e) {e.printStackTrace();}}
}

这是执行的结果用两种方式执行了一下。一种是xpath这个需要加入第三方jar包的。

下面再来一种生成xml的方式。

public static Document createDocument(){Document document = DocumentHelper.createDocument();Element root = document.addElement("hibernate-mapper");Element classElement = root.addElement("class").addAttribute("name", "com.guo.user").addAttribute("table", "user");classElement.addElement("property").addAttribute("name","username").addAttribute("value","李三");classElement.addElement("property").addAttribute("name","password").addAttribute("value","密码");try {OutputFormat format = OutputFormat.createPrettyPrint();XMLWriter writer = new XMLWriter(new FileWriter("user1.xml"),format);writer.write(document);writer.flush();writer.close();} catch (IOException e) {e.printStackTrace();}return document;}

Dom4j 解析 XML相关推荐

  1. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

  2. Dom4j 解析Xml文档及XPath查询 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  3. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...

    网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...

  4. 使用dom4j解析XML文件

    为什么80%的码农都做不了架构师?>>>    dom4j是一个java 的XML API,用来读写XML文件. 使用dom4j解析XML文件,首先需要在官网下载dom4j-1.6. ...

  5. Dom4J 解析xml ,类查询

    /*** 从XML文件比对,传入provinceId 返回 provinceShortName * @param provinceid* @return*/public static String p ...

  6. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  7. 使用DOM4J解析XML及采用Schema校验的方法

    使用DOM4J解析XML及采用Schema校验的方法 Validation Currently dom4j does not come with a validation engine. You ar ...

  8. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  9. java解析xml工具类_通过dom4j解析XML字符串XMLDocUtil工具类转换为XML文档及获取指定根节点及指定节点路径内容代码示例...

    一.前言 通过dom4j解析XML文档的XMLDocUtil工具类,进行解析xml字符串为Document文档对象.获取根节点元素路径内容getRootElement.获取唯一路径节点的值getSin ...

  10. Java 使用 Dom4j 解析 XML 指南

    Java 使用 Dom4j 解析 XML 指南 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用 ...

最新文章

  1. 多目标跟踪 | FairMOT:统一检测、重识别的多目标跟踪框架,全新Baseline
  2. c++解析csv 存入数组_使用Apache Commons CSV在Java中读写CSV
  3. 从91移动应用发展趋势报告看国内应用现状
  4. PMCAFF | 创业必读:如何打造一个团队从无到有,再到高效的管理方式
  5. Windows 8.1 新增控件之 DatePicker
  6. ubuntu+eclipse+svn
  7. ElasticSearch Java API
  8. love2d杂记4--有用的辅助库
  9. JavaWeb——springMVC请求数据绑定分类解析(深度好文)
  10. heroku创建linux主机,将Yesod部署到Heroku,无法静态构建
  11. Android 关机(reboot)流程 -- sys.powerctl
  12. 为ui中的面板添加枚举类型脚本与json来保存信息
  13. tf卡工具android,SD/TF卡专用格式化工具
  14. 阿酷三合一版_3dmax阿酷插件
  15. nutch 抓取流程解析
  16. oracle 变更字段名称_oracle怎么修改字段名?
  17. LINUX环境下安装MySQL数据库
  18. C语言坐标打飞机,C语言实现打飞机小游戏
  19. 在线社交网络分析 github,在线社交网络分析软件
  20. 我用一根网线,控制了整栋楼的网络

热门文章

  1. Python 爬虫 xpath 数据解析基本用法
  2. LitmusRT使用笔记
  3. 使用adb时出现Permission denied的解决办法
  4. 男人心疼女人的13种
  5. airpods链接mac弹窗_如何让Airpods连接到MacBook
  6. python 协程 async/await
  7. C#进阶学习--抽象方法(abstract)
  8. java毕业设计纺织代加工车间生产状态监测系统Mybatis+系统+数据库+调试部署
  9. 代理小插件——SwitchyOmega安装与使用
  10. 习题 17:排队提水问题★★