4

I have this XML file :

<pack name="Cappellino" num_monete_livello="1100">
  <level number="1" status="nolocked" />
  <level number="2" status="locked" />
  <level number="3" status="locked"/>
</pack>
<pack name="Canottiera">
  <level number="4" status="locked"/>
  <level number="5" status="locked"/>
  <level number="6" status="locked"/>
  <level number="7" status="locked"/>
</pack>
<pack name="Tuta">
  <level number="8" status="locked"/>
  <level number="9" status="locked"/>
  <level number="10" status="locked"/>
 </pack>

For read this file I use this code :

XmlReader xml = new XmlReader();
XmlReader.Element xml_element = xml.parse(ProgressFileHandle);
Iterator iterator_level = xml_element.getChildrenByName("level").iterator();
while(iterator_level.hasNext()){
     XmlReader.Element level_element = (XmlReader.Element)iterator_level.next();
     String level_number = level_element.getAttribute("number");
     String level_status = level_element.getAttribute("status");
 }

The problem is that the code return me only last pack and in fact the line XmlReader.Element xml_element = xml.parse(ProgressFileHandle); return me only this :

<pack name="Tuta">
    <level number="8" status="noeggs"/>
    <level number="9" status="locked"/>
    <level number="10" status="locked"/>
</pack>

do you know whay ???

MisterX_Dev
  • 429
  • 2
  • 7
  • 16

1 Answers1

5

Your xml has structural problem. Every xml file must have only 1 root element. That's why xml reader reads only first element. You may put your xml contents inside a root element.

Aliaaa
  • 1,590
  • 2
  • 16
  • 37