Dom4j 解析 XML
前言
最近再看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相关推荐
- 【学习笔记】关于DOM4J:使用DOM4J解析XML文档
一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...
- Dom4j 解析Xml文档及XPath查询 学习笔记
本文查阅方法: 1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题 2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...
- java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...
网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...
- 使用dom4j解析XML文件
为什么80%的码农都做不了架构师?>>> dom4j是一个java 的XML API,用来读写XML文件. 使用dom4j解析XML文件,首先需要在官网下载dom4j-1.6. ...
- Dom4J 解析xml ,类查询
/*** 从XML文件比对,传入provinceId 返回 provinceShortName * @param provinceid* @return*/public static String p ...
- Dom4j 解析Xml文档及 XPath查询 学习笔记
2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法: 1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题 2.快捷"查找" ...
- 使用DOM4J解析XML及采用Schema校验的方法
使用DOM4J解析XML及采用Schema校验的方法 Validation Currently dom4j does not come with a validation engine. You ar ...
- Dom4j解析Xml文件,Dom4j创建Xml文件
Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...
- java解析xml工具类_通过dom4j解析XML字符串XMLDocUtil工具类转换为XML文档及获取指定根节点及指定节点路径内容代码示例...
一.前言 通过dom4j解析XML文档的XMLDocUtil工具类,进行解析xml字符串为Document文档对象.获取根节点元素路径内容getRootElement.获取唯一路径节点的值getSin ...
- Java 使用 Dom4j 解析 XML 指南
Java 使用 Dom4j 解析 XML 指南 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用 ...
最新文章
- 多目标跟踪 | FairMOT:统一检测、重识别的多目标跟踪框架,全新Baseline
- c++解析csv 存入数组_使用Apache Commons CSV在Java中读写CSV
- 从91移动应用发展趋势报告看国内应用现状
- PMCAFF | 创业必读:如何打造一个团队从无到有,再到高效的管理方式
- Windows 8.1 新增控件之 DatePicker
- ubuntu+eclipse+svn
- ElasticSearch Java API
- love2d杂记4--有用的辅助库
- JavaWeb——springMVC请求数据绑定分类解析(深度好文)
- heroku创建linux主机,将Yesod部署到Heroku,无法静态构建
- Android 关机(reboot)流程 -- sys.powerctl
- 为ui中的面板添加枚举类型脚本与json来保存信息
- tf卡工具android,SD/TF卡专用格式化工具
- 阿酷三合一版_3dmax阿酷插件
- nutch 抓取流程解析
- oracle 变更字段名称_oracle怎么修改字段名?
- LINUX环境下安装MySQL数据库
- C语言坐标打飞机,C语言实现打飞机小游戏
- 在线社交网络分析 github,在线社交网络分析软件
- 我用一根网线,控制了整栋楼的网络