解析格式为纯字符串的MAP封装起来的XML:(1)

本文介绍了一种使用Java解析封装在MAP中的XML字符串的方法。通过具体的代码示例,展示了如何从XML字符串中提取关键信息,如TASKID和TASKSTATUS,并根据这些信息进行相应的业务逻辑处理。

<map>
  <entry>
    <string>TASKTRANSACTOR</string>
    <string>lg629 627294</string>
  </entry>
  <map>
	 <entry>
	   <string>draftFile</string>
	 </entry>
	 <entry>
	   <string>TASKID</string>
	   <string>N0000000000101341854</string>
	 </entry>
	 <entry>
	   <string>ISNEWFLOW</string>
	   <string>1</string>
	 </entry>
  </map>
  <entry>
    <string>SYSID</string>
    <string>1411037022335</string>
  </entry>
</map>

用MAP封装起来的XML,格式如下,比如我要取TASKID对应的值,怎么取?而且这个MAP又是字符串的形式传来的:

--------解析格式为纯字符串的MAP封装起来的XML:
package com.paic.incentive.core.common.eoa.biz.service.impl;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import com.paic.incentive.core.common.eoa.biz.service.IEoaService;
import com.paic.incentive.core.reward.award.personnel.integration.dao.SpecialGrantDAO;
import com.paic.incentive.core.util.SpringUtil;


/**
 * @author EX-YEZHIQIANG001
 * xifre方式调用 实现类(解析格式为纯字符串的MAP封装起来的XML)
 */


public class EoaServiceImpl implements IEoaService {


private SpecialGrantDAO specialGrantDAO;

@SuppressWarnings("unchecked")
@Override
public void recevieEoaMsg(String taskInfo) {
try {
byte[] b = taskInfo.getBytes("UTF-8");
ByteArrayInputStream is = new ByteArrayInputStream(b);

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
String taskId = "";
String taskstatus = "";
Element e = doc.getDocumentElement();

//解析XML
NodeList nodeList = e.getElementsByTagName("entry");
Element element = null;
for(int i=0;i<nodeList.getLength();i++){
element = (Element) nodeList.item(i); 
Node node = (Node) element.getElementsByTagName("string").item(0);
if(node.getTextContent().equals("TASKID")){
taskId = element.getElementsByTagName("string").item(1).getTextContent();
}else if(node.getTextContent().equals("TASKSTATUS")){
taskstatus = element.getElementsByTagName("string").item(1).getTextContent();
}
}
/*
文件的状态(TASKSTATUS):
COMPLIED:文件归档(数据库状态保存为2,下面3种状态表示失败为3);
REJECTED:文件终止(不同意且终止);
ABANDONED:文件作废;
DRAFTDELETE:草稿箱签报作废。
*/
if("COMPLIED".equals(taskstatus)){
taskstatus = "2";
}else if(null == taskstatus || "null".equals(taskstatus) || "".equals(taskstatus)){
taskstatus = null;
}else{
taskstatus = "3";
}
int status = Integer.parseInt(taskstatus); 
Map map = new HashMap();
map.put("p_taskId", taskId);
map.put("p_status", status);

specialGrantDAO = (SpecialGrantDAO) SpringUtil.getBean("specialGrantDAO");  

boolean flag = specialGrantDAO.saveSGApproval(map);

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (DOMException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值