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

<?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");

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

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

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

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

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

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

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里面