1

KSoap2 の複雑な応答の解析に問題があります。

私の応答 XML ファイルは次のとおりです。

<Word>breadth</Word>
<Definitions>
  <Definition>
    <Word>breadth</Word>
    <Dictionary>
      <Id>gcide</Id>
      <Name>The Collaborative International Dictionary of English v.0.44</Name>
    </Dictionary>
    <WordDefinition>Breadth \Breadth\ (br[e^]dth)</WordDefinition>
  </Definition>
  <Definition>
    <Word>breadth</Word>
    <Dictionary>
      <Id>moby-thes</Id>
      <Name>Moby Thesaurus II by Grady Ward, 1.0</Name>
    </Dictionary>
    <WordDefinition>87 Moby Thesaurus words for "breadth": </WordDefinition>
  </Definition>
</Definitions>

私のクラスファイルは次のとおりです。

public class MainActivity extends Activity {

    private static final String SOAP_ACTION = "http://services.aonaware.com/webservices/Define"; 
    private static final String NAMESPACE = "http://services.aonaware.com/webservices/";
    private static final String METHOD_NAME = "Define";
    private static final String URL = "http://services.aonaware.com/DictService/DictService.asmx";
    int n=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);

        PropertyInfo pi1=new PropertyInfo();
        pi1.setName("word");
        pi1.setValue("breadth");
        pi1.setType(String.class);
        request.addProperty(pi1);


        SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        soapEnvelope.dotNet=true;
        soapEnvelope.setOutputSoapObject(request);

        HttpTransportSE androidHttpTransport =new HttpTransportSE(URL);
        try{
            androidHttpTransport.call(SOAP_ACTION, soapEnvelope);
            SoapObject resultAns = (SoapObject)soapEnvelope.getResponse();
            System.out.println("Full ans: "+resultAns);
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

LogCat での私の出力は次のとおりです。

Here 1: anyType{Word=breadth; Definitions=anyType{Definition=anyType{Word=breadth; Dictionary=anyType{Id=gcide; Name=The Collaborative International Dictionary of English v.0.44; }; WordDefinition=Breadth \Breadth\ (br[e^]dth)
; }; Definition=anyType{Word=breadth; Dictionary=anyType{Id=moby-thes; Name=Moby Thesaurus II by Grady Ward, 1.0; }; WordDefinition=87 Moby Thesaurus words for "breadth":
; }; }; }

私は2日から検索しています..それでも解析できません。私はksoap2が初めてなので、複雑なオブジェクトを解析する適切な方法がわかりません。では、どのようにして値を取得したか教えていただけますか?

編集:接続に問題はありません。知りたいのは、Xml ノードからデータを取得することだけです。問題は、この XML が別のノード内にノードを持っていることです。ですから、実際の努力はそのsoupEnvelope.getResopnse()行から始まると思います。助けてください!

4

0 に答える 0