gpt4 book ai didi

android - XmlPullParser - 从具有特定父元素的元素中提取

转载 作者:行者123 更新时间:2023-11-29 17:48:24 29 4
gpt4 key购买 nike

考虑这个 XML。它描述了人员和他们拥有的汽车的列表。

<People>
<Person id="100">
<Name>Bob</Name>
<Cars>
<Car>
<Make>Toyota</Make>
<Model>Celica</Model>
</Car>
</Cars>
</Person>
<Person id="101">
<Name>Jim</Name>
<Cars>
<Car>
<Make>Ford</Make>
<Model>Pinto</Model>
</Car>
<Car>
<Make>Dodge</Make>
<Model>Viper</Model>
</Car>
</Cars>
</Person>
</People>

我已经创建了一个解析器,它将通过并抓取:

ID: 100, Name: Bob
ID: 101, Name: Jim

但我正在努力将其分解并获取作为特定父项的子项的嵌套元素。

while (eventType != XmlPullParser.END_DOCUMENT) {
String name = null;
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
// do something
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if (name.equalsIgnoreCase("Cars")) {

// how do i restrict this to only cars under person with ID 101?

}

假设我只想知道吉姆有什么样的车。我知道 Jim 的 ID 是 101,但是当父 Person 元素有一个 id 时,我如何限制 XmlPullParser 循环只查看 Cars 元素> 101

最佳答案

您可以使用标志来了解解析器当前的位置,例如:

boolean personFound = false;
boolean carsFound = false;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (XmlPullParser.START_TAG && parser.getName().equals("Person") && parser.getAttributeValue(0).equals("101")) {
personFound = true;
}
if (personFound && XmlPullParser.START_TAG && parser.getName().equals("Cars")){
carsFound = true
}
if (carsFound) {
// Do something useful
}
if (carsFound && XmlPullParser.END_TAG && parser.getName().equals("Cars"){
break;
}
eventType = parser.next();
}

关于android - XmlPullParser - 从具有特定父元素的元素中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24784360/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com