Android 如何从服务器发送的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

我想获取服务器以xml格式发送的数据。我读过xml解析器,但数据是xml格式的,在xml下的数据是字符串形式的,即数据表中的数据。这里有很多字段告诉我如何分别获取每个字段

来自服务器的响应是:

    <<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;
}