我对soapxml的回答有疑问。
如何检索multiref的所有值。值而不是名称或其他元素。soap响应的完整列表如下所示
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<queryAccountBalanceByCardResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<ResponseInfo href="#id0"/>
<Details href="#id1"/>
</queryAccountBalanceByCardResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:OperationResponseInfo" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:issuing_v_01_02_xsd">
<response_code xsi:type="xsd:integer">0</response_code>
<error_description xsi:type="xsd:string" xsi:nil="true"/>
<error_action xsi:type="xsd:string" xsi:nil="true"/>
<EXTERNAL_SESSION_ID xsi:type="xsd:string">****</EXTERNAL_SESSION_ID>
</multiRef>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:ListType_Generic" xmlns:ns2="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<row href="#id2"/>
</multiRef>
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:RowType_Generic" xmlns:ns3="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item href="#id3"/>
<item href="#id4"/>
<item href="#id5"/>
<item href="#id6"/>
<item href="#id7"/>
<item href="#id8"/>
<item href="#id9"/>
<item href="#id10"/>
<item href="#id11"/>
<item href="#id12"/>
<item href="#id13"/>
<item href="#id14"/>
<item href="#id15"/>
<item href="#id16"/>
<item href="#id17"/>
<item href="#id18"/>
<item href="#id19"/>
<item href="#id20"/>
</multiRef>
<multiRef id="id10" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:ItemType_Generic" xmlns:ns4="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">END_BAL</name>
<value xsi:type="xsd:string">***</value>
</multiRef>
<multiRef id="id8" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:ItemType_Generic" xmlns:ns5="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">ACC_STATUS</name>
<value xsi:type="xsd:string">****</value>
</multiRef>
<multiRef id="id13" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns6:ItemType_Generic" xmlns:ns6="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">C_ACCNT_TYPE</name>
<value xsi:type="xsd:string">00</value>
</multiRef>
<multiRef id="id5" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns7:ItemType_Generic" xmlns:ns7="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CARD_STATUS</name>
<value xsi:type="xsd:string">0</value>
</multiRef>
<multiRef id="id16" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns8:ItemType_Generic" xmlns:ns8="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">BANK_C</name>
<value xsi:type="xsd:string">**</value>
</multiRef>
<multiRef id="id17" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns9:ItemType_Generic" xmlns:ns9="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">GROUPC</name>
<value xsi:type="xsd:string">**</value>
</multiRef>
<multiRef id="id19" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns10:ItemType_Generic" xmlns:ns10="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CRD</name>
<value xsi:type="xsd:string">**</value>
</multiRef>
<multiRef id="id14" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns11:ItemType_Generic" xmlns:ns11="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">STOP_CAUSE</name>
<value xsi:type="xsd:string">0</value>
</multiRef>
<multiRef id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns12:ItemType_Generic" xmlns:ns12="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CARD</name>
<value xsi:type="xsd:string">*****</value>
</multiRef>
<multiRef id="id9" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns13:ItemType_Generic" xmlns:ns13="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CCY</name>
<value xsi:type="xsd:string">***</value>
</multiRef>
<multiRef id="id20" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns14:ItemType_Generic" xmlns:ns14="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CRD_EXPIRY</name>
<value xsi:type="xsd:string"/>
</multiRef>
<multiRef id="id7" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns15:ItemType_Generic" xmlns:ns15="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CARD_ACCT</name>
<value xsi:type="xsd:string">*****</value>
</multiRef>
<multiRef id="id18" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns16:ItemType_Generic" xmlns:ns16="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">CCY_EXP</name>
<value xsi:type="xsd:string">****</value>
</multiRef>
<multiRef id="id4" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns17:ItemType_Generic" xmlns:ns17="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">EXPIRY1</name>
<value xsi:type="xsd:string">****</value>
</multiRef>
<multiRef id="id11" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns18:ItemType_Generic" xmlns:ns18="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">LOCKED_AMOUNT</name>
<value xsi:type="xsd:string">0</value>
</multiRef>
<multiRef id="id12" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns19:ItemType_Generic" xmlns:ns19="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">AVAIL_AMOUNT</name>
<value xsi:type="xsd:string">97149</value>
</multiRef>
<multiRef id="id15" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns20:ItemType_Generic" xmlns:ns20="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">MAIN_ROW</name>
<value xsi:type="xsd:string">*****</value>
</multiRef>
<multiRef id="id6" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns21:ItemType_Generic" xmlns:ns21="urn:issuing_v_01_02_xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<name xsi:type="xsd:string">ACCOUNT_NO</name>
<value xsi:type="xsd:string">****</value>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
我很努力,但没有结果请任何人都可以给我一个线索,如何实现获得特定的价值在java中。使用jaxb或其他工具。提前谢谢。如您所见,multiref是一个数组。
我写的代码来获取所有多重引用的值。
public static void main(String[] args)
{
List<String> output = null;
try {
output = getFullNameFromXml(xml, "multiRef");
} catch (Exception e) {
e.printStackTrace();
}
String[] strarray = new String[output.size()];
output.toArray(strarray);
System.out.print("Response Array is "+ Arrays.toString(strarray));
}
public static Document loadXMLString(String response) throws Exception
{
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(response));
return db.parse(is);
}
public static List<String> getFullNameFromXml(String response, String tagName) throws Exception {
Document xmlDoc = loadXMLString(response);
NodeList nodeList = xmlDoc.getElementsByTagName(tagName);
List<String> ids = new ArrayList<String>(nodeList.getLength());
for(int i=0;i<nodeList.getLength(); i++) {
Node x = nodeList.item(i);
ids.add(x.getFirstChild().getNodeValue());
System.out.println(nodeList.item(i).getFirstChild().getNodeValue());
}
return ids;
}
但结果只有21个逗号的空数组。您能给我一个提示,让我从这个soapxml中获取multiref的所有值吗。提前谢谢
1条答案
按热度按时间eagi6jfj1#
这是我问题的解决办法。任何能帮我的人都会很高兴的。