wcq686
wcq686
采纳率42.9%
2016-05-26 05:47 阅读 1.8k

java xml报文解析,把name名相同的解析成一个数组存到map集合

30
<?xml version="1.0" encoding="GBK"?>
<request version="1.0">

<query>
        <filed name="FundOID" type="String"></filed>
        <filed name="FundNum" type="String"></filed>
        <filed name="SalePrice" type="String"></filed> 
</query>
<query>
        <filed name="FundOID" type="String"></filed>
        <filed name="FundNum" type="String"></filed>
        <filed name="SalePrice" type="String"></filed>
</query>
<query>
        <filed name="FundOID" type="String"></filed>
        <filed name="FundNum" type="String"></filed>
        <filed name="SalePrice" type="String"></filed>
</query>
<query>
      <filed name="TransToFundOID" type="String"></filed>
        <filed name="SaleNum" type="String"></filed>
        <filed name="TransToFundName" type="String"></filed>
</query>
<query>
      <filed name="TransToFundOID" type="String"></filed>
        <filed name="SaleNum" type="String"></filed>
        <filed name="TransToFundName" type="String"></filed>
</query>
<query>
      <filed name="IDNUmber" type="String"></filed>
        <filed name="policyNumber" type="String"></filed>
        <filed name="operIp" type="String"></filed>
</query>
</request>

上面是一个发送过来的xml报文,如何通过解析
可以这样得到数据
String[] fundOID = (String[]) map.get("fundOID");
String[] fundNum = (String[]) map.get("fundNum");
String policyNumber = map.get("policyNumber");
String operIp = map.get("operIp");

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • qq_20744301 寻回本体之路 2016-05-26 06:37

    XML -》 object -> json
    XMLSerialier用一下。
    详情看 http://datalife.iteye.com/blog/1058466/

    点赞 1 评论 复制链接分享
  • baidu_30829927 hufz00 2016-05-26 06:04

    你先把xml 解析成json数组,通过循环就取出来了啊。

    点赞 评论 复制链接分享
  • wcq686 wcq686 2016-05-26 08:09

    我是刚接触报文,各位大神可以给点具体的代码吗

    点赞 评论 复制链接分享
  • marsedely marsedely 2016-05-26 09:00

    参考一下xpath文档,提取你想要的值

    点赞 评论 复制链接分享
  • wcq686 wcq686 2016-05-26 09:12

    我的节点名都是一样的,不同的是节点的属性name的值不同,根据name的值相同的取出放到一起形成一个数组存到map集合中
    这个要怎么做

    点赞 评论 复制链接分享
  • high2011 highfei2011 2016-05-27 02:42

    你可以使用dom解析,然后输出即可!

    点赞 评论 复制链接分享
  • wcq686 wcq686 2016-05-27 03:09
    if ("query".equals(monits.getName())) {
                        for (Iterator j = monits.elementIterator(); j.hasNext();) {
                            Element moint = (Element) j.next();
                            if ("filed".equals(moint.getName())) {
                                String key = moint.attribute("name").getValue();
                                String value = moint.getText();
                                map.put(key, value);
                            }
                        }
                    } 
    

    怎样根据不同的name属性值,把相同的存到一起,最后存到map里面

    点赞 评论 复制链接分享

相关推荐