1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

XML auslesen bei unterschiedlichen ChildNodes

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von jimboo, 14.11.2010.

  1. jimboo, 14.11.2010 #1
    jimboo

    jimboo Threadstarter Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    0
    Registriert seit:
    07.11.2010
    Hi,

    ich versuche ein XML-File auszulesen, dass in der Regel aus folgenden Childs besteht:
    Code:
    [COLOR=DarkRed]<book>
      <title>[COLOR=Black]Schätzing[/COLOR]</title>
      <price>[COLOR=Black]8,99[/COLOR]</price>
    </book>
    <book>
       <title>[COLOR=Black]Böll[/COLOR]</title>
       <price>[COLOR=Black]4,99[/COLOR]</price>
    </book>
    ...[/COLOR]
    
    Das Auslesen erfolgt über die folgenden Codezeilen:
    Code:
    Node node = nodeList.item(i);             
    Element fstElmnt = (Element) node;
    NodeList titleList = fstElmnt.getElementsByTagName("title");
    Element titleElement = (Element) titleList.item(0);
    
    Dies funktioniert nur insoweit bis die XML-File eine andere Struktur besitzt:
    Code:
    [COLOR=DarkRed]<book>
       </title>
       </price>
    </book>
    <book>
        <title>[COLOR=Black]Böll[/COLOR]</title>
        <price>[COLOR=Black]4,99[/COLOR]</price>
    </book>
     ...[/COLOR]
    
    Passe ich nun "Element titleElement = (Element) titleList.item(1);" um das zweite Buch auszulesen, erhalte ich keinen Wert zurück.
     
  2. egon232, 14.11.2010 #2
    egon232

    egon232 Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    moin,

    Bisschen mehr code wäre hilfreich.
    was steht in nodeList? Alle Book Knoten?
     
  3. jimboo, 14.11.2010 #3
    jimboo

    jimboo Threadstarter Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    0
    Registriert seit:
    07.11.2010
    Ja klar doch, also:

    nodeList: alle Books-Tags
    titleList: title-Tag
    i: Laufparameter für book-Tag

    Vielleicht hast Du einen besseren Vorschlag den Code aufzubauen.

    Code:
    try{
        orders_books = new ArrayList<Order>();    
    
        NodeList nodeList = xml_nodeList("http://www.TEST.com/index.xml", "book")
        Node node = nodeList.item(i);             
        Element fstElmnt = (Element) node;
        NodeList titleList = fstElmnt.getElementsByTagName("title");
        Element titleElement = (Element) titleList.item(0);
    
        String stringBookTitle;
        stringBookTitle = titleElement.getFirstChild().getNodeValue();
    
    }catch (Exception e) {Log.e("BACKGROUND_PROC", e.getMessage());};
     
    Zuletzt bearbeitet: 14.11.2010
  4. egon232, 14.11.2010 #4
    egon232

    egon232 Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    1
    Registriert seit:
    05.02.2010
    Des kann doch auch garnichts zurück geben, weil du pro book-Konten nur ein Title-Knoten hast, eigentlich müsste es da ne exception geben.

    lass dir mal mit titleList.getLength() die anzahl der nodes in der titleList ausgeben.
     
    Zuletzt bearbeitet: 14.11.2010

Diese Seite empfehlen