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 が間違った名前に関連付けられます)。
どうすれば解決できますか?