现在xml已异常的流行,所以为了跟上趋势,我也学习使用了xml。
这是我使用dom4j进行解析xml文档的一段代码:(ide工具:myeclipse)
<?xml version="1.0" encoding="utf-8"?>
<resource>
<sql id="one">
<sql-content>a</sql-content><!-- 这个就是sql/hql语句的内容 -->
<alias>b</alias><!-- 这个如果是hql语句的列的别名 -->
<type>c</type><!-- 这个是别名对应的hibernate类型 -->
<pageSize>d</pageSize><!-- 如果有分页,这个是分页大小 -->
</sql>
<sql id="two">
<sql-content>x</sql-content><!-- 这个就是sql/hql语句的内容 -->
<alias>t</alias><!-- 这个如果是hql语句的列的别名 -->
<type>2</type><!-- 这个是别名对应的hibernate类型 -->
<pageSize>2</pageSize><!-- 如果有分页,这个是分页大小 -->
</sql>
</resource>
这个是我举例使用的xml文件
import java.io.InputStream;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.tax.exception.NullResultException;
/**
* 这里要注意的此xml文档的根会签必须是:resource<br>
* 而此xml文档的根标签只可以为:sql,当然文档中sql的个数不限,可以没有,也可以有多个,而且此标签有一个必须的唯一属性id
* 这里是解析xml文件的内容,最后返回的结果是<sql>内所有的内容,将并它存在map中,标签名是对应的key<br>
* 而key对应的值也就是其标签的内容
* @author 张尊伟
*
*/
public class ParseXML implements Serializable {
private static Document document = null;
private static Element rootElement = null;
private static Map map = new HashMap();
private ParseXML() throws NullResultException {
SAXReader reader = new SAXReader();
try {
InputStream is =ParseXML.class.getResourceAsStream("/resources.xml");
document = reader.read(is);
rootElement = document.getRootElement();
} catch (DocumentException e) {
throw new NullResultException("提供的资源文件不存在或者解析文件错误!",e);
}
}
public static ParseXML getInstance() throws NullResultException{
final String INSTANCE = "com.tax.util.ParseXML";
ParseXML px = (ParseXML) map.get(INSTANCE);
if(px == null){
px = new ParseXML();
map.put(INSTANCE,px);
}
return px;
}
/**
* 这里返回dom4j的document对象
* @return org.dom4j.Document
*/
public Document getDocument() {
return document;
}
/**
* 返回引xml文档的根标签
* @return
*/
public Element getRootElement() {
return rootElement;
}
/**
* 这里根据<sql>标签的id属性行到此标签的所有子标签的值<br>
* 返回的结果是<sql>内所有的内容,将并它存在map中,标签名是对应的key<br>
* 而key对应的值也就是其标签的内容<br>
* @param idValue
* @return
*/
public Map getValue(String idValue){
Map map = new HashMap();
List list = document.selectNodes("/resource/sql/@id");
Iterator it = list.iterator();
while(it.hasNext()){
Attribute attribute = (Attribute) it.next();
if(!attribute.getValue().equals(idValue)){
continue;
}
Iterator it0 = attribute.getParent().elementIterator();
Element el = null;
while(it0.hasNext()){
el = (Element) it0.next();
map.put(el.getName(),el.getData());
}
break;
} return map;
}
/*
public static void main(String []args){
ParseXML px = null;
try {
px = ParseXML.getInstance();
} catch (NullResultException e) {
// TODO 自动生成 catch 块
System.out.println(e.getException().getMessage());
}
Map map = px.getValue("one");
System.out.println(map.get("alias"));
}*/
}
分享到:
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
自己写的dom4j 解析xml 文档的纤细案例,主要讲解,如何使用dom4j 来读取 或 写入xml 文档。。。
dom4j解析xml文件的压缩包,完整版。对jdom进行了封装。包含源码,jar包以及所需的全部内容。
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
dom4j解析XML文件格式dom4j解析XML文件格式dom4j解析XML文件格式
dom4j解析XML文档.ppt
dom4j解析xml,利用反射机制.将解析出来的信息保存到一个类当中
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
完整的讲解一个dom4j对xml的增删改查
一个关于用dom4j解析xml,遍历xml,建立xml的简单例子
很详细的文档 可以借鉴下 希望对你有帮助
分别使用DOM和DOM4j解析XML文件,因为目前使用最广泛的是DOM4j所以只写了用DOM4j对XML进行增删改查。
本人自己研究的解析方法,主要用dom4j解析XML文件,进而获取里面的信息
java dom4j 解析xml文档 使用java操作xml 例如创建 读取 删除 等等
// 读取并解析XML文档 // SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read...
dom4j解析xml,连接oracle数据库实例
自己写的一个dom4j解析xml文件工具类
使用dom4j对xml文档进行增删改. 查询就不用说了,使用elements(....)/element(...)/attributeValue()/getText()等方法