java dom4j sax_Java dom4j saxReader解析xml

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();//通过文件输入流获取documentdocument = reader.read(fis);//获取跟元素Element rootElement =  document.getRootElement();//rootElement下包含的子元素List 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;}}

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

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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值