java后台怎么接收并解析传⼊的xml数据
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Request>
<Head>
<TxCode>2818</TxCode>
</Head>
<Body>
<PaymentNo>U0000022019061750506390001</PaymentNo>
<Status>20</Status>
<Amount>400</Amount>
</Body>
</Request>
如上,有⼀段xml数据。要从前端传给后台。接收⽅式有两种,⼀种是Http形式,另⼀种是xml以字符串的形式传进后台。但不管怎么传,最重要的还是传进后台以后怎么去处理xml,怎么得到这⾥⾯我们想要的元素信息。这⾥就涉及到dom4j的使⽤。json有fastjson来解析,xml⾃然也有可以解析它的东西。
今天就写⼀下以Http接收的⽰例,如果是以String接收那就更简单了,⼤同⼩异,我就不写了。
先上代码解析:
public String payment(HttpServletRequest request) throws DocumentException, IOException {
// 获取HTTP请求的输⼊流
// 已HTTP请求输⼊流建⽴⼀个BufferedReader对象xcode怎么打开
BufferedReader br = new BufferedReader(new InputStreamReader(
String buffer = null;
// 存放请求内容
StringBuffer xml = new StringBuffer();
while ((buffer = br.readLine()) != null) {
// 在页⾯中显⽰读取到的请求参数
xml.append(buffer);
}
String callbackMessage = String();
if (!ObjectUtils.isEmpty(callbackMessage)) {
Payment payment= new Payment();
Document doc = null;
//1.读取并解析XML⽂档,SAXReader就是⼀个管道,⽤⼀个流的⽅式,把xml⽂件读出来
// SAXReader reader = new SAXReader();
// Document document = ad(new File("l")); //l表⽰你要解析的xml⽂档            //2.将字符串转为XML
doc = DocumentHelper.parseText(callbackMessage);
Element rootElt = RootElement(); // 获取根节点Request
System.out.println("根节点:" + Name()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("Head"); // 获取根节点下的⼦节点head
// 遍历head节点
while (iter.hasNext()) {
Element recordEless = (Element) ();
String txCode = recordEless.elementTextTrim("TxCode");
payment.setTxCode(txCode);
System.out.println("txCode:" + txCode);
}
Iterator iterss = rootElt.elementIterator("Body"); ///获取根节点下的⼦节点body
// 遍历body节点
while (iterss.hasNext()) {
Element recordEless = (Element) ();
String paymentNo = recordEless.elementTextTrim("PaymentNo");
payment.setPaymentNo(paymentNo);
System.out.println("paymentNo:" + paymentNo);
String status = recordEless.elementTextTrim("status");
payment.setStatus(status);
System.out.println("status:" + status);
String amount = recordEless.elementTextTrim("Amount");
payment.setAmount(amount);
System.out.println("amount:" + amount);
}
.
.....到此xml解析完毕,后续操作省略
}
⽤到的包
代码拷进去编辑器应该会有提醒的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。