首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

传送字符串数组报文和解析

2013-03-26 
传递字符串数组报文和解析1 .项目中,难免遇到两个系统平台数据的交互,此时就需要通过接口来完成了;2.WebSe

传递字符串数组报文和解析

1 .项目中,难免遇到两个系统平台数据的交互,此时就需要通过接口来完成了;

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

?

热点排行