Android中的反编组肥皂响应

问题描述:

我有两个应用程序,客户端应用程序(移动应用程序),具有Java编程语言的服务器应用程序。 我已经使用jaxb来编组我的自定义列表。Android中的反编组肥皂响应

  Keyword objKeyword=new Keyword(); 
      objKeyword.setKeywordList(keywordList); //keywordList=new ArrayList<Keyword>(); 

      JAXBContext jc = JAXBContext.newInstance(Keyword.class); 
      Marshaller mar = jc.createMarshaller(); 
      mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 

      sw = new StringWriter(); 

      mar.marshal(objKeyword, sw); 

我正在通过书面下列代码行我的Android应用程序的响应,

 // Create request by specifying Namespace and Operation Name 
     SoapObject request = new SoapObject(WSDL_NAMESPACE, "getList"); 

     // Creating envelope 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 

     // Setting output SOAP object 
     envelope.setOutputSoapObject(request); 

     // Creating HTTP call object 
     HttpTransportSE androidHttpTransport = new HttpTransportSE(WSDL_URL); 

     // Invoking web service 
     androidHttpTransport.call(WSDL_NAMESPACE + "getList", envelope); 

     // Getting the response 
     SoapObject response = (SoapObject) envelope.bodyIn; 

在我的回应我得到在下面的格式我的自定义列表,

<My_list> 
    <keyList> 
    <id>1</id> 
    <name>Key1</name> 
    </keyList> 

    <keyList> 
    <id>2</id> 
    <name>Key2</name> 
    </keyList> 
</My_list> 

现在,我想在我的android客户端应用程序中解组肥皂响应。 我读过JAXB不能与android一起使用,而是可以完成使用SAX解析器的XML解析。

请帮忙。

没有必要来解读它, 我可以使用的代码下面一行得到我回应的完整列表,

// Getting the response 
SoapObject response = (SoapObject) envelope.bodyIn; 

然后,我可以用得到的表计数值,

int iResponseCount=response.getPropertyCount(); 

并随后与

List<Keys> lstKeys=new ArrayList<Keys>(); 
    for (int i = 0; i < iResponseCount; i++) { 
      SoapObject responseKey =(SoapObject) response.getProperty(i); 

      Keys objKeys =new Keys(); 
      objKeys.setId(responseKey.getProperty(0).toString()); 
      objKeys.setName(responseKey.getProperty(1).toString()); 

      lstKeys.add(objKeys); 
    } 

PS环:我也改变了重将我的服务器的应用程序功能(用java编写)从字符串转换为,

List<Keys>