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