2014-07-27 6 views
0

Je travaille sur l'application android. Dans mon application, j'ai reçu la réponse de données xml du serveur et l'ai stockée dans une chaîne. Maintenant, j'ai besoin d'obtenir chaque valeur de ce xml et afficher dans une liste déroulante. Comment puis je faire ça. S'il vous plait, j'ai besoin de votre aide avec ceci. Sera vraiment reconnaissant.Obtenir des données de xml dans android

Mes données xml:

<?xml version="1.0" encoding="utf-8"?> 

<root> 
<status>first<status> 
<description>very good</description> 
<Firstnames> 
<name>CoderzHeaven</name> 
<name>Android</name> 
<name>iphone</name> 
</Firstnames> 
<SecondNames> 
<name>Google</name> 
<name>Android</name> 
</SecondNames> 
</root> 

Je reçois les données XML mentionnés ci-dessus à partir du serveur. Maintenant j'ai besoin de l'afficher dans listview. Comment puis-je obtenir ces valeurs en utilisant xmlparser. J'ai essayé avec différents exemples mais cela n'a pas fonctionné pour moi.

Répondre

0

Vous devez créer une classe supplémentaire et paramètrer votre adaptateur avec des objets de cette classe, un exemple modèle de données ressemblerait à ceci:

public class DataClass { 

private String status, description; 
private ArrayList<String> fnames, lnames; 

public DataClass() { 
    fnames = new ArrayList<String>(); 
    lnames = new ArrayList<String>(); 
} 

public String getStatus() { 
    return status; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 

public String getDescription() { 
    return description; 
} 

public void setDescription(String description) { 
    this.description = description; 
} 

    public ArrayList<String> getFnames() { 
    return fnames; 
} 

public ArrayList<String> getLnames() { 
    return lnames; 
} 
} 

En ce qui concerne l'analyseur XML, il y a littéralement des tonnes d'exemples, vous êtes définitivement en avance si vous pouvez utiliser la recherche. Juste pour vous donner un point de départ, tutoriels one, two, three, four.

Si vous rencontrez des problèmes, postez vos efforts et le code qui n'a pas fonctionné, qu'avez-vous essayé et ainsi de suite. Ensuite, vous obtiendrez de l'aide, sinon personne sur SO ne va écrire du code pour vous. https://stackoverflow.com/help/how-to-ask

0

Voici comment procéder si le fichier XML se trouve dans le dossier des ressources de votre application.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    InputStream input = null; 
    try { 
     input = getApplicationContext().getAssets().open("data.xml"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    DocumentBuilder builder = null; 
    try { 
     builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
    } catch (ParserConfigurationException e) { 
     e.printStackTrace(); 
    } 
    Document doc = null; 
    if (builder == null) { 
     Log.e("TAG", "Builder is empty."); 
     return; 
    } 
    try { 
     doc = builder.parse(input); 
    } catch (SAXException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    if (doc == null) { 
     Log.e("TAG", "Document is empty."); 
     return; 
    } 

    // Get Firstnames element 
    Element firstNames = (Element) doc.getElementsByTagName("Firstnames").item(0); 
    // Get name nodes from Firstnames 
    NodeList nameNodes = firstNames.getElementsByTagName("name"); 
    // Get count of names inside of Firstnames 
    int cChildren = nameNodes.getLength(); 
    List<String> names = new ArrayList<String>(cChildren); 
    for (int i=0; i<cChildren; i++) { 
     names.add(nameNodes.item(i).getTextContent()); 
     Log.d("TAG","Name: "+names.get(i)); 
    } 

    // Do same with SecondNames 
} 
Questions connexes