Java dom4j saxReader解析xml

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

import java.io.File; 

import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.util.List; 

import org.dom4j.Attribute; 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 

public class XmlUtil { 

private static Logger logger = Logger.getLogger(XmlUtil.class); 

/** 
* 使用sax解析本地xml文件 
* @param fileName 文件名 
* @return 是否解析成功 
*/ 
public static  boolean parseXmlBySax(String fileName){ 
//根据文件名称创建文件 
File file = new File(fileName); 
//创建文件输入流读取文件 
FileInputStream fis = null; 
SAXReader reader = null; 
Document document =  null; 
if(!file.exists()){ 
logger.info("xml文件不存在"); 
return false; 

try { 
fis = new FileInputStream(file); 
//根据解析文件的编码格式设置编码 
reader.setEncoding("gbk"); 
reader = new SAXReader(); 
//通过文件输入流获取document 
document = reader.read(fis); 
//获取跟元素 
Element rootElement =  document.getRootElement(); 
//rootElement下包含的子元素 
List<Element> list = rootElement.elements(); 
if(list != null && list.size()>0){ 
for(Element element:list){ 
//获取属性值(第一种方法) 
Attribute attribute = element.attribute("name"); 
String value = attribute.getValue(); 
//获取属性值(第二种方法) 
String newValue = element.attributeValue("name"); 
//获取element下的第一个userId元素 
Element userElement = element.element("userId"); 
//获取userElement的文本 
String text = userElement.getTextTrim(); 
//进行所需要的业务逻辑处理 

return true; 

} catch (FileNotFoundException e) { 
logger.error("读取本地文件失败",e); 
}catch(DocumentException e1){ 
logger.error("获取Document失败",e1); 

return false; 


原文:http://jameszhao1987.iteye.com/blog/1258461


生成、读取例子:http://inotgaoshou.iteye.com/blog/1012188


dom4j api详解:http://871421448.iteye.com/blog/1546955



附:微信公众号支付返回参数解析案例

public static JSONObject service(JSONObject params, ActionContext context) throws IOException, SQLException, NamingException{

HttpServletRequest req = (HttpServletRequest)context.get(ActionContext.REQUEST);

HttpServletResponse resp = (HttpServletResponse)context.get(ActionContext.RESPONSE);

resp.setContentType("text/xml;charset=utf-8");

resp.setCharacterEncoding("utf-8");

String out_trade_no = "";//商户订单号

String transaction_id="";//微信支付订单号

String result_code = "";

Element root=null;

try {

        InputStream inputStream = req.getInputStream(); 

        SAXReader reader = new SAXReader();

        Document document = reader.read(inputStream);

        System.out.println(document.asXML());

        root =  document.getRootElement();  //获取跟元素 

        //rootElement下包含的子元素 

        result_code=root.element("result_code").getText();

        out_trade_no=root.element("out_trade_no").getText();

        transaction_id=root.element("transaction_id").getText();

    } catch (DocumentException e) {

        e.printStackTrace();

    }










本文转自 艺晨光 51CTO博客,原文链接:http://blog.51cto.com/ycgit/1787094,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
2月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2月前
|
JavaScript 前端开发 算法
React 虚拟 DOM 深度解析
【10月更文挑战第5天】本文深入解析了 React 虚拟 DOM 的工作原理,包括其基础概念、优点与缺点,以及 Diff 算法的关键点。同时,分享了常见问题及解决方法,并介绍了作者在代码/项目上的成就和经验,如大型电商平台的前端重构和开源贡献。
63 3
|
2月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
84 4
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
27 3
|
2月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
86 0
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
70 1
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)