XML auslesen bei unterschiedlichen ChildNodes

J

jimboo

Neues Mitglied
0
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.
 
moin,

Bisschen mehr code wäre hilfreich.
was steht in nodeList? Alle Book Knoten?
 
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:
Passe ich nun "Element titleElement = (Element) titleList.item(1);" um das zweite Buch auszulesen, erhalte ich keinen Wert zurück.
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:

Ähnliche Themen

H
Antworten
2
Aufrufe
1.283
Hcman
H
D
Antworten
17
Aufrufe
322
datNeMo
D
Y
Antworten
4
Aufrufe
1.187
swa00
swa00
Zurück
Oben Unten