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()
行から始まると思います。助けてください!