


Android utilise XmlPullParser pour analyser les fichiers XML
Analysez le XML suivant :
<?xml version="1.0" encoding="utf-8" ?> <rss><sid>77f265bb46de068e78f35afbadec62af</sid><count>3</count><control>0</control> <mblog><uid>1195224593</uid><favid>3436952795</favid><mblogid>5xtaJR</mblogid><mblogidnum>3436952795</mblogidnum> <mblogtype>0</mblogtype><mlevel>0</mlevel><feedid>5xtaJR</feedid><nick>马艳丽</nick> <portrait> <vip>1</vip> <vipsubtype>0</vipsubtype> <member_type>13</member_type> <remark></remark> <level>2</level> <rtnum>11</rtnum> <commentnum>25</commentnum> <attitudenum>0</attitudenum> <attitudeid>0</attitudeid> <attitudes_status>0</attitudes_status> <attitudes_count>0</attitudes_count> <mblogtypename></mblogtypename> <visible><type>0</type><list_id>0</list_id></visible> <content>婚礼在北海美丽的北海公园举行…好美好浪漫的地方… </content> <pic> <source>彩信</source> </mblog> </rss>
Écrivez l'analyse comme ceci :
public static Object[] getMBlogList(String content) throws HttpException { try { Object[] result = new Object[3]; List<MBlog> lst = new ArrayList<MBlog>(); result[1] = lst; final XmlPullParser parser = Xml.newPullParser(); parser.setInput(new StringReader(content)); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) { switch (type) { <strong>case XmlPullParser.START_TAG:这里开始读取最外层的标签属性</strong> if (parser.getName().equals("count")) { try { result[0] = new Integer(parseText(parser)); } catch (Exception e) { result[0] = 0; } } else if (parser.getName().equals("mblog")) { MBlog mb = parseMBlog(parser); if (mb != null) lst.add(mb); } else if (parser.getName().equals("relation")) { result[2] = new Integer(parseText(parser)); } break; default: break; } } return result; } catch (NumberFormatException e) { throw new HttpException(e); } catch (XmlPullParserException e) { throw new HttpException(e); } catch (IOException e) { throw new HttpException(e); } catch (ParseException e) { throw new HttpException(e); } } private static String parseText(XmlPullParser parser) throws ParseException { try { int type = parser.next(); if (type == XmlPullParser.TEXT) { return replaceEntityRef(parser.getText().trim()); } else { return ""; } } catch (Exception e) { throw new ParseException(PARSE_ERROR, e); } } public static MBlog parseMBlog(XmlPullParser parser) throws ParseException { <strong>MBlog b = new MBlog();//这里开始读取每个MBlog对象</strong> try { int type; LOOP: { while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) { switch (type) { case XmlPullParser.START_TAG: if (parser.getName().equals("uid")) { b.uid = parseText(parser); if (b.uid.equals("")) return null; } else if (parser.getName().equals("favid")) { b.favid = parseText(parser); } else if (parser.getName().equals("mblogid")) { b.mblogid = parseText(parser); } else if (parser.getName().equals("nick")) { String s = parseText(parser); b.nick = s; } else if (parser.getName().equals("portrait")) { b.portrait = parseText(parser); } else if (parser.getName().equals("vip")) { b.vip = (parseText(parser).equals("1")) ? true : false; } else if (parser.getName().equals("content")) { b.content = parseText(parser); } else if (parser.getName().equals("rtrootuid")) { b.rtrootuid = parseText(parser); } else if (parser.getName().equals("rtrootid")) { b.rtrootid = parseText(parser); } else if (parser.getName().equals("rtrootnick")) { String s = parseText(parser); b.rtrootnick = s; } else if (parser.getName().equals("rtrootvip")) { b.rtrootvip = (parseText(parser).equals("1")) ? true : false; } else if (parser.getName().equals("rtreason")) { b.rtreason = parseText(parser); } else if (parser.getName().equals("rtnum")) { b.rtnum = Integer.parseInt(parseText(parser)); } else if (parser.getName().equals("commentnum")) { b.commentnum = Integer.parseInt(parseText(parser)); } else if (parser.getName().equals("time")) { b.time = new Date(Long.parseLong(parseText(parser)) * 1000); } else if (parser.getName().equals("pic")) { b.pic = parseText(parser); } else if (parser.getName().equals("source")) { b.src = parseText(parser); } else if (parser.getName().equals("longitude")) { b.longitude = parseText(parser); } else if (parser.getName().equals("latitude")) { b.latitude = parseText(parser); } break; case XmlPullParser.END_TAG: if (parser.getName().equals("mblog")) { break LOOP; } break; default: break; } } } return b; } catch (Exception e) { throw new ParseException(PARSE_ERROR, e); } }
s'appelle ainsi dans l'activité :
public void parseAssertData() { InputStream is = null; try { is = this.getAssets().open("11.xml", Context.MODE_PRIVATE); int length = is.available(); byte[] buffer = new byte[length]; is.read(buffer); String temp = new String(buffer); try { Object[] array = ParseData.getMBlogList(temp); } catch (HttpException e) { e.printStackTrace(); } } catch (IOException ex) { ex.printStackTrace(); } }
Le ci-dessus, Android utilise XmlPullParser pour analyser le contenu des fichiers XML. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ces derniers jours, Ice Universe n'a cessé de révéler des détails sur le Galaxy S25 Ultra, qui est largement considéré comme le prochain smartphone phare de Samsung. Entre autres choses, le fuyard a affirmé que Samsung prévoyait d'apporter une seule mise à niveau de l'appareil photo.

OnLeaks s'est désormais associé à Android Headlines pour offrir un premier aperçu du Galaxy S25 Ultra, quelques jours après une tentative infructueuse de générer plus de 4 000 $ auprès de ses abonnés X (anciennement Twitter). Pour le contexte, les images de rendu intégrées ci-dessous h

En plus d'annoncer deux nouveaux smartphones, TCL a également annoncé une nouvelle tablette Android appelée NXTPAPER 14, et sa taille d'écran massive est l'un de ses arguments de vente. Le NXTPAPER 14 est doté de la version 3.0 de la marque emblématique de panneaux LCD mats de TCL.

Le Vivo Y300 Pro vient d'être entièrement dévoilé et c'est l'un des téléphones Android de milieu de gamme les plus fins avec une grande batterie. Pour être exact, le smartphone ne fait que 7,69 mm d'épaisseur mais dispose d'une batterie de 6 500 mAh. C'est la même capacité que le lancement récent

Samsung n'a pas encore donné d'indications sur la date à laquelle il mettrait à jour sa série de smartphones Fan Edition (FE). Dans l’état actuel des choses, le Galaxy S23 FE reste l’édition la plus récente de la société, ayant été présentée début octobre 2023. Cependant, de nombreux

Ces derniers jours, Ice Universe n'a cessé de révéler des détails sur le Galaxy S25 Ultra, qui est largement considéré comme le prochain smartphone phare de Samsung. Entre autres choses, le fuyard a affirmé que Samsung prévoyait d'apporter une seule mise à niveau de l'appareil photo.

Le Redmi Note 14 Pro Plus est désormais officiel en tant que successeur direct du Redmi Note 13 Pro Plus de l'année dernière (375 $ sur Amazon). Comme prévu, le Redmi Note 14 Pro Plus est en tête de la série Redmi Note 14 aux côtés du Redmi Note 14 et du Redmi Note 14 Pro. Li

La marque sœur de OnePlus, iQOO, a un cycle de produits 2023-4 qui pourrait être presque terminé ; néanmoins, la marque a déclaré qu'elle n'en avait pas encore fini avec sa série Z9. Sa variante Turbo+ finale, et peut-être la plus haut de gamme, vient d'être annoncée comme prévu. T
