我创建了一个XML文件并将其放在我的“res”文件夹中。我决定使用XmlResourceParser来解析XML文件。
我的问题是,我如何进入下一级元素?具体来说,我如何访问子节点?
由于
我的XML文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<encounters>
<creature id="1" type="humanoid" name="Jon" race="Human" gender="M" age="20" alignment="NE">
<appearance condition="ragged" skinColor="white" hairColor="brown" size="M" height="70" weight="170"></appearance>
<stats hp="20" ac="5" ap="5" mp="10" str="11" dex="15" int="15"></stats>
<inventory wp1="sword" wp2="knife" arm1="leather" arm2="bracers"></inventory>
<magic attSp1="fireball" attSp2="iceBall" defSp1="minor Shield" defSp2="major Shield"></magic>
<treasureItems gp="10" sp="25" item1="ring of protection + 1"></treasureItems>
</creature>
</encounters>
到目前为止我的代码看起来像这样:
// ***** BEGIN XML PARSING *****
try {
while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {
if (xrp.getEventType() == XmlResourceParser.START_TAG) {
String s = xrp.getName();
if (s.equals("creature")) {
encounterID = xrp.getAttributeResourceValue(null, "id", 0);
encounterType = xrp.getAttributeValue(null, "type");
encounterName = xrp.getAttributeValue(null, "name");
encounterRace = xrp.getAttributeValue(null, "race");
encounterGender = xrp.getAttributeValue(null, "gender");
encounterAge = xrp.getAttributeResourceValue(null, "age", 0);
encounterAlignment = xrp.getAttributeValue(null, "alignment");
}
}
}
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// ***** END XML PARSING *****
答案 0 :(得分:3)
以下是有关如何使用XmlPullParser documentation的文档。
据说你想使用xrp.next()函数将解析器移动到下一个元素。这将按照它们出现的顺序循环遍历XML文档中的所有元素。如果您有子元素,则解析器将在触摸父元素的START_TAG后到达。