Я создал файл XML и поместил его в папку «res». Я решил использовать XmlResourceParser для анализа XML-файла.Как получить доступ к дочерним элементам с помощью XmlResourceParser
Мой вопрос: как перейти на следующий уровень элементов? В частности, как я могу получить доступ к дочерним узлам?
Благодаря
Мой файл 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 *****
getResource(). GetString() или что-то было бы проще – njzk2
Я не уверен, что вы имеете в виду, извините, я новичок в этом и довольно невежествен. Вы имеете в виду getResource(). GetSring() лучше, чем XmlResourceParser? Или вы имеете в виду вместо использования XmlResourceParser.getName(), я должен использовать getResource(). GetString() ... Просто из любопытства, почему это было бы проще? --- Спасибо --- – SkyeBoniwell
если ваш файл находится в res, скорее всего, вы можете получить к нему доступ через getResources() (хотя я не совсем уверен, что вы пытаетесь сделать здесь) – njzk2