`
Damon_Zhang
  • 浏览: 69856 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

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

 

3
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics