Maison >développement back-end >Tutoriel XML/RSS >Détails du code pour générer et analyser des données au format XML

Détails du code pour générer et analyser des données au format XML

黄舟
黄舟original
2017-03-08 16:11:041810parcourir

1. Génération et analyse des données au format 🎜>

est transmise sur le réseau.

Le format XML est écrit et affiché sous forme de notes autocollantes, claires en un coup d'œil et faciles à lire et à identifier, comme indiqué ci-dessous :

Génération de XML

<xml 头>
<student>
<name>张三</name>
<number>110001</number>
<sex>male</sex>
</student>
Si vous utilisez du code Java Pour implémenter un tel format de chaîne, vous pouvez utiliser StringBuilder pour l'assemblage : StringBuilder sb = new StringBuilder();

Bien que le code ci-dessus puisse également générer du XML

//数据保存到文件
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sb.append("<student>");
sb.append("<name>");
sb.append(name);
sb.append("</name>");
sb.append("<number>");
sb.append(number);
sb.append("</number>");
sb.append("<sex>");
sb.append(sex);
sb.append("</sex>");
sb.append("</student>");
fichiers , mais les caractères spéciaux ne peuvent pas être traités. Par exemple, si le contenu du message texte contient le symbole "5f557f62ae7ac7a14e0b1cb564790dfc", l'analyseur xml

ne peut pas effectuer l'analyse correcte. Par conséquent, la condition préalable à l’utilisation est que vous vous assuriez que le contenu des données ne comporte pas de caractères spéciaux.

Android nous fournit une API spécifiquement pour générer des données XML : XmlSerializer L'api

a implémenté en interne le traitement des caractères spéciaux. Le code est le suivant : >

Analyse XML<.>

1. L'analyse DOM

est une API basée sur les objets qui stocke tout le contenu du fichier XML dans la mémoire sous la forme d'une arborescence de documents, puis permet d'utiliser DOMAPI pour parcourir le XML. arbre et récupérer les données requises, afin que le fichier puisse être manipulé sous forme de nœuds selon la structure de l'arbre. Étant donné que DOM doit stocker l'intégralité du fichier XML en mémoire sous la forme d'une arborescence de documents, ce qui consomme beaucoup de mémoire, cela ne me dérange pas d'utiliser cette méthode pour l'analyse sous Android.
try {//
采用Android的api面向对象的生成xml文件.
// 1.得到xml文件的序列化器
XmlSerializer serializer = Xml.newSerializer();
// 2.指定序列化器的一些初始参数
File file = new File(getFilesDir(), name +".xml");
FileOutputStream os = new FileOutputStream(file);serializer.setOutput(os,
"utf-8");
// 3.写xml文件.
serializer.startDocument("utf-8",
true);//写开头serializer.startTag(null,
"student");//开始标签
serializer.startTag(null,"name");
serializer.text(name);//文本标签
serializer.endTag(null,"name");//结束标签
serializer.startTag(null,"number");
serializer.text(number);
serializer.endTag(null,"number");
serializer.startTag(null,"sex");
serializer.text(sex);
serializer.endTag(null,"sex");
serializer.endTag(null,"student");
serializer.endDocument();//写结尾
os.close();
Toast.makeText(this,"保存数据成功", 0).show();
} catch (Exception e) {e.printStackTrace();
Toast.makeText(this,"保存数据失败", 0).show();
}

2. L'analyse SAX

analysera le document XML ligne par ligne, déclenchera le processeur d'analyse lorsqu'une balise est rencontrée et utilisera le traitement des événements pour analyser le XML. Il peut traiter du XML pendant la lecture du document. Il est relativement rapide et ne nécessite pas d'attendre que le document soit chargé. Il n'a pas non plus besoin de charger l'intégralité du document en mémoire, il n'y a donc pas de problème d'occupation de mémoire et il peut l'analyser. très gros XML. Cependant, l'analyse SAX ne peut être utilisée que pour lire des données XML et ne peut pas être ajoutée, supprimée ou modifiée.

3. L'analyse PULL est similaire à l'analyse SAX et est également basée sur le traitement des événements. L'analyseur PULL est un projet Java open source qui peut être utilisé à la fois dans les applications Android et dans les programmes JavaEE. Android a intégré un analyseur PULL, donc la méthode d'analyse la plus couramment utilisée dans Android est l'analyse PULL.

Comparaison entre l'analyse SAX et PULL : L'analyseur Pull fonctionne de la même manière que l'analyseur SAX

, qui sont tous deux pilotés par des événements. Il fournit des événements similaires, tels que les événements d'élément de début et d'élément de fin. Utilisez parser.next() pour saisir l'élément suivant et déclencher l'événement correspondant. Les événements seront envoyés sous forme de codes numériques, vous pouvez donc utiliser un commutateur

pour gérer les événements qui vous intéressent. Lorsque l'élément commence à être analysé, appelez la méthode parser.nextText() pour obtenir la valeur du prochain élément de type Text

.

L'analyseur SAX fonctionne en poussant automatiquement les événements dans le processeur d'événements pour traitement, vous ne pouvez donc pas contrôler la fin active du traitement des événements tandis que l'analyseur Pull

fonctionne en vous permettant d'exécuter activement le code de l'application ; obtient les événements de l'analyseur Puisqu'il obtient activement les événements, il ne peut plus obtenir d'événements et terminer l'analyse une fois que les conditions requises sont remplies.

Le code permettant d'utiliser la méthode PULL pour analyser les fichiers XML sous Android est le suivant :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn