我在解析我的 XML 时遇到了麻烦,我尝试了很多东西。
我有这样的xml。
<question id="1" text="Zodiac Sign" >
<option id="1" >Aries</option>
<option id="2" >Taurus</option>
<option id="3" >Gemini</option>
<option id="4" >Cancer</option>
<option id="5" >Leo</option>
<option id="6" >Virgo</option>
<option id="7" >Libra</option>
<option id="8" >Scarpio</option>
<option id="9" >Sagitarius</option>
<option id="10" >Capricorn</option>
<option id="11" >Acqauarius</option>
</question><question id="2" text="Home Town" >
</question><question id="3" text="Current Locaion" >
</question><question id="4" text="Nationality" ></question>
<question id="5" text="Height" ></question>
<question id="6" text="Build(optional)" >
<option id="13" >Slim</option>
<option id="14" >Athletic</option>
<option id="15" >Few Pounds Extra</option>
<option id="16" >Obese</option>
</question><question id="7" text="Hair Color" >
</question><question id="8" text="Color Of Eyes" >
<option id="23" >Black</option>
<option id="24" >Brown</option>
<option id="25" >Blue</option>
</question><question id="9" text="Smoking Habits" >
</question>
我需要得到问题,我想将它们保存在一个数组中,然后有一些问题具有作为子标签的选项,我想将这些选项添加到另一个数组中,并引用该问题 id。
我怎样才能真正解析这个xml。?
我一直在尝试使用XMLPullParser
这是我的代码,但它不起作用。
StringBuilder sb = new StringBuilder();
int depth = 1;
while (depth != 0) {
switch (parser.next()) {
case XmlPullParser.END_TAG:
depth--;
if (depth > 0) {
sb.append("</" + parser.getName() + ">");
}
break;
case XmlPullParser.START_TAG:
depth++;
StringBuilder attrs = new StringBuilder();
for (int i = 0; i < parser.getAttributeCount(); i++) {
attrs.append(parser.getAttributeName(i) + "=\""
+ parser.getAttributeValue(i) + "\" ");
}
sb.append("<" + parser.getName() + " " + attrs.toString() + ">");
break;
default:
sb.append(parser.getText());
break;
}
}
payload = sb.toString();