gpt4 book ai didi

Android - 拉解析器

转载 作者:行者123 更新时间:2023-11-29 00:49:55 25 4
gpt4 key购买 nike

我有一个 xml 文件,我想解析它以仅获取学生 ID 和学生姓名。

<students>
<student>
<id type="integer">101</id>
<name>James</name>
<degree>
<id type="integer">1978271</id>
<name>SCJP</name>
</degree>
</student>
<student>
<id type="integer">102</id>
<name>Joseph</name>
<degree>
<id type="integer">1978272</id>
<name>MCST</name>
</degree>
</student>
</students>

代码:

while (eventType != XmlPullParser.END_DOCUMENT) {
parser.next();
eventType = parser.getEventType();
switch (eventType){
case XmlPullParser.START_TAG:
tag_name = parser.getName();
if(tag_name.equalsIgnoreCase("ID")){
stud_id = parser.nextText().toString();
Log.i("Id = ", pid);
} else if (tag_name.equalsIgnoreCase("name")){
stud_name = parser.nextText().toString();
}
break;
}
}

我的问题:当我使用上述代码解析 XML 文件时,我得到了两个 ID(即 student-iddegree- id),所以使用 Pull-parser, 我应该以哪种方式解析 XML 文件以获取只有 Student-id 的列表` ?

最佳答案

当遇到匹配“student”的起始标签时,将一些 bool 变量(例如称为 insideStudent)设置为 true。同样,当您遇到“degree”标签时,将另一个 insideDegree 变量设置为 true。当你有一个结束标签时,将它们设置为 false(例如,如果你有 </student>,那么你将 insideStudent 设置为 false)。现在遇到ID标签,只需要检查自己是只在student里面,还是在degree和student里面。像这样的东西:

if(tag_name.equalsIgnoreCase("ID")){
// Get student ID
if (insideStudent && !insideDegree) {
stud_id = parser.nextText().toString();
Log.i("Id = ", pid);
}
}

关于Android - 拉解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691086/

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