2012-01-18 13 views
0

私のAndroidアプリケーションはWebサービスリクエストを送信し、JSONの埋め込みデータとともにxml形式のWebサービスからの応答を取得します。私はこれを文字列で保存しています。今、この文字列からJSONデータを取得する方法がわかりません。サーバーからのXMLレスポンスからJSONを取得する方法は?

System.setProperty("http.keepAlive", "false"); 
      // request parameters 
      HttpParams params = httpClient.getParams(); 
      HttpConnectionParams.setConnectionTimeout(params, 10000); 
      HttpConnectionParams.setSoTimeout(params, 15000); 
      // set parameter 
      HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), true); 

      // POST the envelope 
      HttpPost httppost = new HttpPost(url); 
      // add headers 
      httppost.setHeader("SOAPAction", soapAction); 
      httppost.setHeader("Content-Type", "text/xml; charset=utf-8"); 
    //  httppost.setHeader("Content-Length", 
    //    String.valueOf(requestEnvelope.length())); 
      httppost.setHeader("SOAPAction", "http://tempuri.org/" 
        + methodName); 



    //  String responseString = ""; 
      try { 

       // the entity holds the request 
       HttpEntity entity = new StringEntity(requestEnvelope); 
       httppost.setEntity(entity); 
HttpResponse response = httpClient.execute(httppost); 
      String result = EntityUtils.toString(response.getEntity()); 

これはサーバーからの応答で、結果の文字列に入ります。

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
<ValidatePassCodeResponse xmlns="http://tempuri.org/"> 
<ValidatePassCodeResult> 
[{"ID":1929,"Headline":"Test News","Detail":"","SubmitDate":"1/17/2012 12:08:04 PM"}] 
</ValidatePassCodeResult> 
</ValidatePassCodeResponse> 
</soap:Body> 
</soap:Envelope> 

ありがとうございます。

答えて

2

これは、XML文字列のタグを削除してjson文字列を取得した後、文字列をjson配列に解析して結果を取得した方法です。

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
      factory.setNamespaceAware(true); 
      XmlPullParser xpp = factory.newPullParser(); 

      xpp.setInput(new StringReader(result)); 
      int eventType = xpp.getEventType(); 
      while (eventType != XmlPullParser.END_DOCUMENT) { 
       if (eventType == XmlPullParser.START_DOCUMENT) { 
        System.out.println("Start document"); 
       } else if (eventType == XmlPullParser.START_TAG) { 
        System.out.println("Start tag " + xpp.getName()); 
       } else if (eventType == XmlPullParser.END_TAG) { 
        System.out.println("End tag " + xpp.getName()); 
       } else if (eventType == XmlPullParser.TEXT) { 
        responseString = xpp.getText(); 
        System.out.println("Text " + xpp.getText()); 
       } 
       eventType = xpp.next(); 
      } 
      System.out.println("End document"); 
0

私の質問を見て、あなたの応答文字列をjsonビューアに入れてください。

How to use Json Parsing?

0

初のSAXParserを使用してJSONを取得します。
これを参照してくださいsample
次にJSONを解析します。このquestionを参照してください。

0

XMLPullParserを使用して解決策を得ました。 助けてくれてありがとう。

+5

...と答えは何ですか?この質問の次の読者は、あなたが見つけたものを書き留めることで利益を得ることができます。 –

関連する問題