Android 如何从服务器发送的xml中过滤出所需的数据?
我想获取服务器以xml格式发送的数据。我读过xml解析器,但数据是xml格式的,在xml下的数据是字符串形式的,即数据表中的数据。这里有很多字段告诉我如何分别获取每个字段 来自服务器的响应是:Android 如何从服务器发送的xml中过滤出所需的数据?,android,xml,xml-parsing,xmlhttprequest,xml-serialization,Android,Xml,Xml Parsing,Xmlhttprequest,Xml Serialization,我想获取服务器以xml格式发送的数据。我读过xml解析器,但数据是xml格式的,在xml下的数据是字符串形式的,即数据表中的数据。这里有很多字段告诉我如何分别获取每个字段 来自服务器的响应是: <<Table> <CallDetailId>06012015192014733680011</CallDetailId> <CallID>83A26D3811000100</CallID> <CorrelatorId /&g
<<Table>
<CallDetailId>06012015192014733680011</CallDetailId>
<CallID>83A26D3811000100</CallID>
<CorrelatorId />
<EncryptedCall>false</EncryptedCall>
<CallDate>2015-01-06 19:20:14</CallDate>
<CalledBy>337</CalledBy>
<CalledTo>368</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName />
<LastName />
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<CallDirection>I</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>true</Archive>
<ExtensionValue>368</ExtensionValue>
</Table>
<Table>
<AgentHangup>true</AgentHangup>
<CallDetailId>060120151424080020030003</CallDetailId>
<CallID>1F5D6D3803000100</CallID>
<CorrelatorId />
<CallDuration>5</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015-01-06 14:24:08</CallDate>
<CalledBy>2003</CalledBy>
<CalledTo>210</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName />
<LastName />
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<AF>C:\Program Files (x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRECORDAudio\Repository\from\150106\0207\202_06012015 142408003_0003_2003.wav</AF>
<CallDirection>O</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>false</Archive>
<ExtensionValue>2003</ExtensionValue>
<GraphValue />
</Table>
<Table>
<AgentHangup>false</AgentHangup>
<CallDetailId>06012015142407832100003</CallDetailId>
<CallID>1F5D6D3803000100</CallID>
<CorrelatorId />
<CallDuration>5</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015-01-06 14:24:07</CallDate>
<CalledBy>2003</CalledBy>
<CalledTo>210</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName />
<LastName />
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<AF>C:\Program Files (x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRECORDAudio\Repository\from\150106\0208\201_06012015 142407863_0003_210.wav</AF>
<CallDirection>I</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>false</Archive>
<ExtensionValue>210</ExtensionValue>
<GraphValue />
</Table>
<Table>
<CallDetailId>06012015141513152100001</CallDetailId>
<CallID>095B6D3801000100</CallID>
<CorrelatorId />
<EncryptedCall>false</EncryptedCall>
<CallDate>2015-01-06 14:15:13</CallDate>
<CalledBy>2003</CalledBy>
<CalledTo>210</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName />
<LastName />
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<CallDirection>I</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>true</Archive>
<ExtensionValue>210</ExtensionValue>
</Table>
<Table>
<CallDetailId>060120151415133220030001</CallDetailId>
<CallID>095B6D3801000100</CallID>
<CorrelatorId />
<EncryptedCall>false</EncryptedCall>
<CallDate>2015-01-06 14:15:13</CallDate>
<CalledBy>2003</CalledBy>
<CalledTo>210</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName />
<LastName />
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<CallDirection>O</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>true</Archive>
<ExtensionValue>2003</ExtensionValue>
</Table>
<Table>
<AgentHangup>false</AgentHangup>
<CallDetailId>101</CallDetailId>
<CallID>CAC4FB4F84DF0400</CallID>
<CorrelatorId />
<CallDuration>40</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2014/12/30 08:59:52</CallDate>
<CalledBy>02164714913</CalledBy>
<CalledTo>79100</CalledTo>
<FirstName>Omair</FirstName>
<LastName>Imran</LastName>
<Comments>N/A</Comments>
/*从原始列表和for循环更改
*/
//List COOKIE_HEADER=List ht.getServiceConnection.getResponseProperties
data = resultsString.toString();
} catch (SocketTimeoutException t) {
t.printStackTrace();
} catch (IOException i) {
i.printStackTrace();
} catch (Exception q) {
q.printStackTrace();
}
return data;
}
private final SoapSerializationEnvelope getSoapSerializationEnvelope(SoapObject request) {
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//change from orgnl
//envelope.dotNet = true;
envelope.dotNet = true;
envelope.implicitTypes = true;
envelope.setAddAdornments(false);
envelope.setOutputSoapObject(request);
return envelope;
}
private final HttpTransportSE getHttpTransportSE() {
HttpTransportSE ht = new HttpTransportSE(Proxy.NO_PROXY,MAIN_REQUEST_URL,60000);
ht.debug = true;
ht.setXmlVersionTag("<?xml version=\"1.0\" encoding= \"UTF-8\" ?>");
return ht;
}
}阅读有关xml解析和实现的更多信息,有很多示例可以帮助您。我已经阅读了,但有一个问题是,它没有转换数据,因为数据中有一些单代码符号,如<和>,用于标记的结束和结束?我们如何从您发布的数据中猜到这一点?也许这应该是你问题的细节,而不是你实际提出的一般性问题。向我们展示导致您出现问题的数据和您目前的代码。好的,我将仔细编辑我的问题查看数据来自服务器的数据中有多个表,我必须在网格视图中显示这些数据以显示这些结果。现在的问题是,这个表将是我的网格表中的一条记录/一行,而下一个表将是我的表中的下一行,那么如何做到这一点呢?
public class SoapRequests {
private static final boolean DEBUG_SOAP_REQUEST_RESPONSE = true;
private static final String MAIN_REQUEST_URL = "My_Url"
private static final String NAMESPACE = "http://tempuri.org/";
private static final String SOAP_ACTION = "http://tempuri.org/";
private static String SESSION_ID;
public static String Toaster=null ;
private final void testHttpResponse(HttpTransportSE ht) {
ht.debug = DEBUG_SOAP_REQUEST_RESPONSE;
if (DEBUG_SOAP_REQUEST_RESPONSE) {
Log.v("SOAP RETURN", "Request XML:\n" + ht.requestDump);
Log.v("SOAP RETURN", "\n\n\nResponse XML:\n" + ht.responseDump)
;
Toaster=ht.responseDump;
}
}
public String getData(String fValue) {
String data = null;
String methodname = "SearchCalls";
SoapObject request = new SoapObject(NAMESPACE, methodname);
//3
request.addProperty("username", "admin");
//
request.addProperty("password", "admin");
//5
request.addProperty("FirstNameCriteria", "");
//6
request.addProperty("FirstName", "");
//7
request.addProperty("LastNameCriteria", "");
//8
request.addProperty("LastName", "");
//9
request.addProperty("GroupSearchOption", "");
//10
request.addProperty("GroupName", "");
//11
request.addProperty("EncryptedCallsCriteria", "");
//12
request.addProperty("AssociatedAgentCriteria", "");
//13
request.addProperty("CalledByCriteria", "");
//14
request.addProperty("CalledBy", "");
//15
request.addProperty("CalledToCriteria", "");
//16
request.addProperty("CalledTo", "");
//17
request.addProperty("CalledDateSearchCriteria", "Past_N_days");
//18
request.addProperty("NumberOfDays", "777");
//19
request.addProperty("StartDate", "");
//20
request.addProperty("EndDate", "");
//21
request.addProperty("CallDurationCriteria", "");
//22
request.addProperty("CallDuration", "");
//23
request.addProperty("CallDirectionCriteria", "");
//24
request.addProperty("ArchivedCallsCriteria", "");
//25
request.addProperty("ScreenCaptureCallsCriteria", "");
//26
request.addProperty("DeviceHangUpCriteria", "");
//27
request.addProperty("CallIDSearchCriteria", "");
//28
request.addProperty("CallID", "");
//29
request.addProperty("CorrelatorIDSearchCriteria", "");
//30
request.addProperty("CorrelatorID", "");
//31
request.addProperty("DeviceSearchCriteria", "");
//32
request.addProperty("Device", "");
//33
request.addProperty("FlagSearchCriteria", "All");
//34
request.addProperty("NotesSearchCriteria", "");
//35
request.addProperty("Notes", "");
//36
request.addProperty("CallStatus", "");
//37
request.addProperty("CallTypeSearchCriteria", "");
//38
request.addProperty("CustomField1_Criteria", "");
//39
request.addProperty("CustomFiled1_Value", "");
//40
request.addProperty("CustomField2_Criteria", "");
//41
request.addProperty("CustomField2_Value", "");
//42
request.addProperty("CustomField3_Criteria", "");
//43
request.addProperty("CustomField3_Value", "");
//44
request.addProperty("CustomField4_Criteria", "");
//45
request.addProperty("CustomField4_Value", "");
//46
request.addProperty("CustomField5_Criteria", "");
//47
request.addProperty("CustomField5_Value", "");
//48
request.addProperty("CustomField6_Criteria", "");
//49
request.addProperty("CustomField6_Value", "");
//50
request.addProperty("CustomField7_Criteria", "");
//51
request.addProperty("CustomField7_Value", "");
//52
request.addProperty("CustomField8_Criteria", "");
//53
request.addProperty("CustomField8_Value", "");
//54
request.addProperty("CustomField9_Criteria", "");
//55
request.addProperty("CustomField9_Value", "");
//56
request.addProperty("CustomField10_Criteria", "");
//57
request.addProperty("CustomField10_Value", "");
Log.v("Final Property is",request.toString());
SoapSerializationEnvelope envelope = getSoapSerializationEnvelope(request);
HttpTransportSE ht = getHttpTransportSE();
try {
ht.call(SOAP_ACTION + methodname, envelope);
testHttpResponse(ht);
SoapPrimitive resultsString = (SoapPrimitive)envelope.getResponse();
data = resultsString.toString();
} catch (SocketTimeoutException t) {
t.printStackTrace();
} catch (IOException i) {
i.printStackTrace();
} catch (Exception q) {
q.printStackTrace();
}
return data;
}
private final SoapSerializationEnvelope getSoapSerializationEnvelope(SoapObject request) {
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//change from orgnl
//envelope.dotNet = true;
envelope.dotNet = true;
envelope.implicitTypes = true;
envelope.setAddAdornments(false);
envelope.setOutputSoapObject(request);
return envelope;
}
private final HttpTransportSE getHttpTransportSE() {
HttpTransportSE ht = new HttpTransportSE(Proxy.NO_PROXY,MAIN_REQUEST_URL,60000);
ht.debug = true;
ht.setXmlVersionTag("<?xml version=\"1.0\" encoding= \"UTF-8\" ?>");
return ht;
}