传递字符串数组报文和解析
2013-03-21 19:30
197 查看
1 .项目中,难免遇到两个系统平台数据的交互,此时就需要通过接口来完成了;
2.WebService 基于 HTTP 通信,它跨平台,使得易购平台能无缝衔接,将应用程序的逻辑和数据暴露,使得其他应用系统可重用这些数据;
使用xml对数据封装,使得内容和结构分离,很强的可操作性,作为纯文本可方便的穿过防火墙,它规范统一、支持多种编码、易于扩展;
组装报文:传递字符串数组
2.WebService 基于 HTTP 通信,它跨平台,使得易购平台能无缝衔接,将应用程序的逻辑和数据暴露,使得其他应用系统可重用这些数据;
使用xml对数据封装,使得内容和结构分离,很强的可操作性,作为纯文本可方便的穿过防火墙,它规范统一、支持多种编码、易于扩展;
组装报文:传递字符串数组
public void createXml() { try { String[] input = { "damon,907931506", "chris,776295345" }; String[] line = new String[2]; DocumentBuilderFactory dFact = DocumentBuilderFactory.newInstance(); DocumentBuilder build = dFact.newDocumentBuilder(); Document doc = build.newDocument(); doc.setXmlStandalone(true); Element root = doc.createElement("root"); doc.appendChild(root); Element memberList = doc.createElement("members"); root.appendChild(memberList); for (int i = 0; i < input.length; i++) { line = input[i].split(","); Element member = doc.createElement("member"); memberList.appendChild(member); Element name = doc.createElement("name"); name.appendChild(doc.createTextNode(line[0])); member.appendChild(name); Element phone = doc.createElement("qq"); phone.appendChild(doc.createTextNode(line[1])); member.appendChild(phone); } TransformerFactory tFact = TransformerFactory.newInstance(); Transformer trans = tFact.newTransformer(); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); DOMSource source = new DOMSource(doc); trans.transform(source, result); System.out.println(writer.toString()); } catch (TransformerException ex) { System.out.println("Error outputting document"); } catch (ParserConfigurationException ex) { System.out.println("Error building document"); } }调试输出结果为:
<?xml version="1.0" encoding="UTF-8"?> <root> <members> <member> <name>damon</name> <qq>907931506</qq> </member> <member> <name>chris</name> <qq>776295345</qq> </member> </members> </root>客户端对报文进行解析:(对普通格式的xml进行解析,字符串数组类似)
public Map readXml(String xml) { Map map = new HashMap(); try { Document doc = (Document) DocumentHelper.parseText(xml); Element element = doc.getRootElement(); Iterator Elements = element.elementIterator(); while (Elements.hasNext()) { Element user = (Element) Elements.next(); if (user.getName().equals("returnCode")) { map.put(user.getName(), user.getStringValue()); } Iterator iters = user.elementIterator("param"); while (iters.hasNext()) { Element itemEle = (Element) iters.next(); String paramKey = itemEle.elementTextTrim("paramKey"); String paramValue = itemEle.elementTextTrim("paramValue"); map.put(paramKey, paramValue); } } } catch (Exception e) { e.printStackTrace(); } return map; }
相关文章推荐
- String类型的json体转换为json(json嵌套字符串json,嵌套字符串json数组等)转换并解析为需要的json格式
- Js前端传递json数组至服务器端并解析的实现。
- Java解析Json字符串--数组或列表
- JS解析json数据并将json字符串转化为数组的实现方法
- PHP数组转字符串与PHP字符串转数组的相关方法解析
- 在mina中解析报文为十六进制字符串
- c#与matlab混合编程中 关于字符串和字符串数组的传递
- dom4j解析xml字符串(报文)
- JS解析json数据(如何将json字符串转化为数组)
- Android-NDK开发之第三个例子--传递字符串数组和中文乱码问题
- 解析json字符串 及字符串数组
- JS解析json数据(如何将json字符串转化为数组)
- 微信小程序传递参数(字符串、数组、对象)
- JS解析json数据(如何将json字符串转化为数组)
- php字符串解析为数组的方法
- 关于DCOM传递字符串数组!!
- JS解析json数据(json字符串和数组之间相互转换)
- intent传递字符串数组
- 15.2.2.5 传递字符串数组
- JS解析json数据(如何将json字符串转化为数组)