解析xml文件--mapper文件

1、操作xml文件的方式

Java操作XML文件一共有四种方式:JDOM,DOM,SAX,DOM4J

本文主要介绍精准化使用的一种方式:JDOM

JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果, 2000 年初在类似于Apache协议的许可下,JDOM作为一个开放源代码项目正式开始研发了。经过多年的发展,目前用于 XML语法分析的 Java API,主要包含以下三个软件包:

1)·org.w3c.dom ,W3C 推荐的用于 XML 标准规划文档对象模型的 Java 工具

2)·org.xml.sax,用于对 XML 进行语法分析的事件驱动的简单 API

3)·javax.xml.parsers ,工厂化工具,允许应用程序开发人员获得并配置特殊的语法分析器工具 JDOM 能够替换org.w3c.dom软件包来有计划地操作 XML 文档。

JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。

JDOM的最新版本为JDOM Beta 9。最近JDOM被收录到JSR-102内,这标志着JDOM成为了JAVA平台组成的一部分。

在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。

因为 JDOM 对象就是像Document、Element 和 Attribute 这些类的直接实例,因此创建一个新 JDOM 对象就如在 Java 语言中使用 new 操作符一样容易。JDOM 的使用是直截了当的。

2、JDOM2和SAXParserFactory解析XML文件

2.1 JDOM2

1)JDOM2主要包有:

org.jdom2包含了所有的xml文档要素的java类

org.jdom2.adapters包含了与dom适配的java类

org.jdom2.filter包含了xml文档的过滤器类

org.jdom2.input包含了读取xml文档的类

org.jdom2.output包含了写入xml文档的类

org.jdom2.transform包含了将jdomxml文档接口转换为其他xml文档接口

org.jdom2.xpath包含了对xml文档xpath操作的类

2)主要用到的org.jdom2相关API介绍:

org.jdom2.Document

org.jdom2.Element

org.jdom2.Attribute

org.jdom2.input.sax.SAXHandler

其他JDOM2详情,可以官网查看:http://www.jdom.org/docs/apidocs/index.html

2.2 SAXParserFactory

1)javax.xml.parsers

javax.xml.parsers ,工厂化工具,允许应用程序开发人员获得并配置特殊的语法分析器工具 JDOM 能够替换org.w3c.dom软件包来有计划地操作 XML 文档。

用到的主要API:

SAXParserFactory

解析工厂

SAXParser

解析器

SAXHandler

JDOM处理,获取JDOM信息

其他javax.xml.parsers详情:https://docs.oracle.com/javase/8/docs/api/index.html?javax/xml/parsers/package-summary.html

下面就拿对mapper文件的解析作为实例,简单介绍下。

3、mapper文件解析

在java世界里,对于数据库的操作,都放在mapper文件里(一堆的xml文件),在精准化对比代码差异时,对于mapper文件,这里用到了上面说的xml文件解析技术。

1)我们需要获得解析工厂 SAXParserFactory

SAXParserFactory spf = SAXParserFactory.newInstance();

2)工厂获取解析器SAXParser

SAXParser sp = spf.newSAXParser();

3)获取JDOM处理器

SAXHandler hand = new SAXHandlerExt();

4)解析xml文件

sp.parse(#{mapper-xml文件}, hand);

5)获取解析后符合JDOM树结构类实例的文件(像Document、Element 和 Attribute 这些类)

Document doc = hand.getDocument();

到这里我们就获得了该xml文件的详细信息,直接通过JDOM相关API以及对象属性获取需要的信息即可。

对于mapper文件内的元素分析,可以参考mybatis的sql语句映射规则。这里mapper文件都是一系列的sql操作映射文件,是mybatis框架中十分重要的文件,可以说,mybatis框架的强大之处就体现在映射文件的编写上。mapper.xml映射文件主要是用来编写sql语句的,以及一些结果集的映射关系的编写等等。

在分析这些mapper文件时,可以先按以下基本的Element进行分析。

 

映射的一些说明,可以参考:

http://c.biancheng.net/mybatis/mapper.html

综上:通过分析得出的数据,进行对比分析得到mapper文件差异进而得到相应的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值