LibGDX读取XML文件

4

我有这个XML文件:

<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>

为了读取这个文件,我使用了以下代码:
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");
 }

问题在于代码只返回了最后一个包,实际上这行代码 XmlReader.Element xml_element = xml.parse(ProgressFileHandle); 只返回了这个包:
<pack name="Tuta">
    <level number="8" status="noeggs"/>
    <level number="9" status="locked"/>
    <level number="10" status="locked"/>
</pack>

你知道为什么吗?


2
我不确定,但是尝试添加根元素:<packs></packs>。 - Aleksandrs
1个回答

5

你的XML存在结构问题。每个XML文件必须只有一个根元素。这就是为什么XML阅读器只读取第一个元素的原因。你可以将XML内容放在一个根元素内。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接