2010-10-22 7 views
0

Je veux connaître une structure de données pour stocker des valeurs de balises. Ma structure XML est:quelle structure de données devrait être utilisée pour stocker différentes valeurs de balises de XML après l'analyse

<personaldetails> 
    <name>Michael</name> 
    <age>28</age> 
    <gender>Male</gender> 
    <address>123 Streeet 7</address> 
    <country>India</country> 
    <pincode> 1234877</pincode> 
    <contactno>35646445</contactno> 
    <emailid>[email protected]</emailid> 
</personaldetails> 

Je veux stocker les valeurs à un seul endroit en utilisant des données structure.Presently je suis en utilisant des méthodes setter et getter pour récupérer des valeurs qui rend mon code grand. Quelqu'un peut-il suggérer quelque chose?

Répondre

1

Les getters et les setters sur un objet ont l'avantage de la sécurité de type. Par exemple si vous avez essayé d'écrire le code getContactN alors le compilateur vous donnerait une erreur. Donc, même si cela peut rendre votre code long, les getters et setters sont bons.

Une alternative consisterait à utiliser une carte, par ex. Map<String,String> pour stocker les valeurs. C'est plus général - vous pouvez insérer n'importe quelle clé que vous aimez - et moins de code, mais cela ne vous donne pas les avantages de l'analyse statique des getters et setters. Si vous épelez quelque chose, vous ne le découvrirez que lorsque vous exécuterez ce bit de code - et si le code est if, il se peut que le code ne soit pas toujours exécuté et vous pourriez le manquer. Il y aurait également des différences de performance entre l'utilisation des getters/setters et une carte, cependant, j'imagine que dans 99% des applications, elles ne seraient pas pertinentes, donc cela ne vaut pas la peine d'être mentionné ici. Si ce code devient un goulot d'étranglement, vous pouvez définir des horaires pour voir quelle approche est la meilleure - mais ne le faites que si vous pouvez vérifier que vous avez des problèmes de performances dans ce domaine, sinon utilisez la technique la plus facile à gérer.

+0

Merci beaucoup Adrian .... Mais mon XML est beaucoup trop long et faire getter setter pour chaque tag est assez grand mais facile !!!! Je veux utiliser Google Maps, mais je ne suis pas sûr que le code aura ou non des conditions – shaireen

0

Je vous recommande de ne pas réinventer la roue en écrivant vos propres classes "conteneur". Au lieu de cela, vous pouvez envisager de générer vos classes Java directement à partir de votre schéma XML à l'aide d'un outil tel que xjc, fourni avec le JDK. Il y a un énorme avantage dans cette approche - Vous n'avez pas à vous soucier d'une analyse syntaxique explicite de XML et le code JAXB validera également votre contenu XML.

Plus d'informations sur l'utilisation de JAXB here.

EDIT: Je viens juste de repérer le tag Android et j'avoue que je ne suis pas sûr que le paquet javax.xml.bind soit livré avec le JDK pour les appareils Android. Cependant, googling pour "xml binding android" semblait faire apparaître un certain nombre d'outils tiers que vous pourriez envisager.