4

Web サービスから XML データを解析する必要があります。しかし、Web サービスからデータを取得すると、データは JSON の形式になります (ブラウザーでは、データは XML として表示されます)。したがって、xml データをアプリケーションに取り込む方法を教えてください。

私は以下を使用しています。

私の主な活動では:

static final String URL = "http://nclex.testshell.net/api/resources";
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML
Log.e("Response is...",xml);

私のxmlParserクラス

public class XMLParser {

    // constructor
    public XMLParser() {

    }

    /**
     * Getting XML from URL making HTTP request
     * @param url string
     * */
    public String getXmlFromUrl(String url) {
        String xml = null;

        try {
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            xml = EntityUtils.toString(httpEntity);

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // return XML
        return xml;
    }
}

出力応答は

[{"ResourceId":1,"Title":"GRE 改訂一般テスト","説明":"GRE 改訂一般テストの口頭推論セクション","リンク":" http://www.ets.org /gre/revised_general/about/content/verbal_reasoning "},{"ResourceId":2,"Title":"GRE Power Pre","Description":"GRE Power Pre","Link":" http://www .nu​​mber2.com/exams/gre/companion/index.cfm?s=0 "},{"ResourceId":3,"Title":"GRE Analytical Writing","Description":"GRE Analytical Writing","リンク":" http://www.mygretutor.com/tests.aspx "},{"ResourceId":4,"Title":"GATE アーキテクチャ &計画","説明":"GATE アーキテクチャと計画","リンク":" http://www.onestopgate.com/gate-sample-papers/architecture-planning/"},{"ResourceId":5,"Title":"TarGATE","Description":"目標を達成するためのGATE","Link":" http://gateforum.com/Testseries-Venue.php "} ,{"ResourceId":6,"Title":"TOEFL iBT","Description":"TOEFL iBT Test Sample Questions","Link":" https://www.ets.org/toefl/ibt/prepare/ sample_questions "}]

4

1 に答える 1

2

Web サービスを使用してサーバーから取得するデータのタイプまたは形式は、Web サービスが実装されている言語と、Web サービスがデータの形式を設定するために選択した応答コードに完全に依存します。.

古い W​​eb サービスまたはプラットフォームは、主に XML 形式をサポートしています。新しい Web サービスは、軽量化のために Json 形式を使用しています。

あなたの場合、Web サービスは両方のタイプの形式 (XML、Json) をサポートし、要求を受信するプラットフォーム (モバイル、デスクトップ) に従って形式を選択します (汎用 Web サービスとして機能する場合があります)。

Web サービスの応答をテストする 1 つの方法は、プラットフォーム ブラウザーから要求することです。つまり、プラットフォーム ブラウザー (デスクトップまたはモバイル) を使用して、プラットフォームの応答を確認します。

最後に、質問への回答です。サーバー側のコードを変更し、モバイル プラットフォームの応答として XML データが返されるようにします (アプリケーション側のコードについて心配する必要はありません。すべての変更は、サーバ側)。

ただし、次のように Json を xml に変換することもできます。

JSONObject Jobj = new JSONObject(jsonString);

次に、次のように、XML クラスを使用して XML 形式で取得できます。

String xml = org.json.XML.toString(Jobj);

ただし、Json を xml に変換するには余分な CPU 時間が必要であり、応答データが巨大な場合は問題になる可能性があるため、お勧めしません。

于 2013-06-24T07:07:00.320 に答える