1

インターネットからxmを解析するlistviewに関するチュートリアルを使用し、LasyAdapterを使用するとlistviewにアイテムが表示されます。xmlに(子ノードの1つに)ペルシア文字を追加すると、リストビューにいくつかのボックスが表示されます(リストビューにテキストを表示した後)。xmlの形式もUTF-8です。私も書体を使いました(しかしうまくいきませんでした)。さらに、アプリケーションにPwesianと入力すると、問題なく表示されますが、xmlから解析されたPersiannコンテンツを表示できません。前もって感謝します。元のXMLparserで投稿を更新しました(これが問題でした)。

public String getXmlFromUrl(String url) {
    String xml = null;

    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);

        HttpResponse httpResponse = httpClient.execute(httpPost);
        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;
}

public Document getDomElement(String xml) {
    Document doc = null;
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {

        DocumentBuilder db = dbf.newDocumentBuilder();

        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));
        doc = db.parse(is);

    } catch (ParserConfigurationException e) {
        Log.e("Error: ", e.getMessage());
        return null;
    } catch (SAXException e) {
        Log.e("Error: ", e.getMessage());
        return null;
    } catch (IOException e) {
        Log.e("Error: ", e.getMessage());
        return null;
    }

    return doc;
}
4

3 に答える 3

2

私は答えを見つけることができました。@Serdakからありがとう。彼は私に読者のことを考えさせた。getXMLFromUrlの部分で変更する必要があります:
xml = EntityUtils.toString(httpEntity);toxml = EntityUtils.toString(httpEntity, "UTF-8");
およびgetDomElementの部分で変更する必要があります:
InputSource is = new InputSource(); is.setCharacterStream(new StringReader(xml));to InputSource is = new InputSource(new ByteArrayInputStream(xml.getBytes("UTF-8")));
「url」と「xml」は両方ともメインアクティビティによって呼び出される文字列であり、XMLparser.jave(両方のgetXmlFromUrl( )およびgetDomElement())。
これらのコマンドは主な活動です:
XMLParser parser = new XMLParser(); String xml = parser.getXmlFromUrl(URL) ;Document doc = parser.getDomElement(xml);
よろしくお願いします。

于 2012-09-30T21:55:22.217 に答える
0

Xml値の読み取りに使用するリーダーは、おそらくUTF-8に設定されていないため、エンコードの問題が発生します。

このようなエンコードオプションでリーダーを使用してみてください。

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
于 2012-09-30T09:45:13.600 に答える
0



XML文字列にペルシャ文字などの Unicode文字が含まれている場合、 StringReaderオブジェクトは例外を作成します。したがって、InputStreamオブジェクトをDocumentオブジェクトに直接 渡してください 。ありがとうございます

于 2014-09-30T08:49:01.197 に答える