1

Web サービスから取得した XML からデータを取得する必要があります。

次のように、SAXパーサーを使用します。

                URL url = new URL(this.pUrl);
                SAXParserFactory spf = SAXParserFactory.newInstance();
                SAXParser sp = spf.newSAXParser();
                XMLReader xr = sp.getXMLReader();
                ProductsHandler handler = new ProductsHandler();
                xr.setContentHandler(handler);
                InputSource is = new InputSource(url.openStream());
                is.setEncoding("ISO-8859-1");
                xr.parse(is);

XML アイテム:

<product>
    <id_product>4548</id_product>
    <name>Special snack 30gr chocolate</name>
    <price>15,00</price>
</product>

ハンドラー スニペット:

..
else if(localName.equals("name")){
            this.in_nome=true;
        }
..
else if(localName.equals("name")){
            this.in_nome=false;
        }
..
else if(this.in_name){
            xmlparsing.setNames(new String(ch , start , length));
        }

WiFi接続を使用すると、うまく機能します。

3G 接続を使用すると、一部のアイテムが分割されて複製されます。

例えば

WiFi の動作:

Product name: Special snack 30gr chocolate

3G の動作:

Product Name: Special sna;
Product Name: Special snack 30gr chocolate;

この動作により、製品リストで問題が発生します (製品 ID が間違った名前に関連付けられます)。

どうすれば解決できますか?

4

0 に答える 0