gpt4 book ai didi

java - 无法从 SOAP 响应中获取值

转载 作者:行者123 更新时间:2023-12-01 10:45:47 25 4
gpt4 key购买 nike

这是我的代码

SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);
request.addProperty("MobileNbr","9959077764");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
androidHttpTransport.debug = true;
SoapObject response = (SoapObject)envelope.bodyIn;
System.out.println(response);
String result = response.getProperty(0);
System.out.println(result);
}catch (XmlPullParserException | IOException e) {
e.printStackTrace();
}

这是我收到的回复。

GetCabListResponse{GetCabListResult=<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>; }

这是从response.getProperty(0)得到的结果;

<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>

我想要 status 和 cab 的值

最佳答案

以下是从返回的 XML 中提取数据的正则表达式解决方案:

    String cab ="<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>";
Pattern p = Pattern.compile("<status>([^<]+)</status><cab>([^<]+)</cab>");
Matcher m = p.matcher(cab);
if(m.find()) {
System.out.println("Status: " + m.group(1));
System.out.println("Cab: " + m.group(2));
}

多辆出租车:

    String cab ="<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>";
Pattern p = Pattern.compile("<status>([^<]+)</status>((<cab>([^<]+)</cab>)*)");
Matcher m = p.matcher(cab);
if(m.find()) {
System.out.println("Status: " + m.group(1));
List<String> cablist = Arrays.asList(m.group(2).replace("<cab>", "").replace("</cab>", "#").split("#"));
System.out.println("Cab: " + cablist);
}

关于java - 无法从 SOAP 响应中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com