我对XML报文不是很了解,
1、请问所谓XML报文,是否就是把XML文件一行一行的全部拼起来,拼成一个大string,然后通过socket发送?
例如,要传送如下:
<Request ID=”6位请求码”>
<Head>
<Action>101<Action>
<SenderID>博卡</SenderID>
<ReceiverID>通联</ReceiverID>
<SendTime>发送时间</SendTime>
</Head>转换成‘XML报文’就是 string=<Request ID=”6位请求码”><Head><Action>101<Action><SenderID>博卡</SenderID><ReceiverID>通联</ReceiverID><SendTime>发送时间</SendTime></Head>是这样吧?2、这样的报文接收后,如何进行解析,取出相应节点的数据呢?谢谢
1、请问所谓XML报文,是否就是把XML文件一行一行的全部拼起来,拼成一个大string,然后通过socket发送?
例如,要传送如下:
<Request ID=”6位请求码”>
<Head>
<Action>101<Action>
<SenderID>博卡</SenderID>
<ReceiverID>通联</ReceiverID>
<SendTime>发送时间</SendTime>
</Head>转换成‘XML报文’就是 string=<Request ID=”6位请求码”><Head><Action>101<Action><SenderID>博卡</SenderID><ReceiverID>通联</ReceiverID><SendTime>发送时间</SendTime></Head>是这样吧?2、这样的报文接收后,如何进行解析,取出相应节点的数据呢?谢谢
要这个干什么?再说,你的xml不完整啊,没有<? xml version='xxx' encode='xxxx' ?>
应该有其他的开源组件可以用吧
==================jsp====================
<%@ page language="java" import="java.util.*,javax.xml.parsers.*,org.w3c.dom.*,java.io.*,com.controller.*" pageEncoding="utf-8"%>
<%
String xmlString = "c:\test\test.xml";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
String xml = xmlString;//application.getRealPath("user.xml");
Document doc = db.parse(new File(xml));
doc.normalize();
Element root = doc.getDocumentElement();
NodeList users= root.getElementsByTagName("user");
for (int i = 0; i < users.getLength(); i++) {
Element user = (Element) users.item(i);
%>
<tr>
<td>< %=user.getElementsByTagName("id").item(0).getFirstChild().getNodeValue()%></td>
<td>< %=user.getElementsByTagName("firstName").item(0).getFirstChild().getNodeValue()%></td>
<td>< %=user.getElementsByTagName("lastName").item(0).getFirstChild().getNodeValue()%></td>
<td>< %=user.getElementsByTagName("password").item(0).getFirstChild().getNodeValue()%></td></tr>
< %
}
%>==================XML====================<users>
<user>
<id>1</id>
<firstname>ddfdfd</firstname>
<lastname>ttttt</lastname>
<password>123123</password>
</user>
<user>
<id>2</id>
<firstname>ddd</firstname>
<lastname>sum</lastname>
<password>123456</password>
</user>
</users>
单纯解析xml文件我知道,我是说解析socket传递过来的 XML报文
可以把String内容放置到一个临时文件,然后解析。
也可以读文件内容转为字符串截取自己想要的数值
xml要加PI,就是<? xml ... ?>这个,要不然没有字符集容易出问题