gpt4 book ai didi

java - Android 中如何将一个子元素值放入 ArrayList 中?

转载 作者:行者123 更新时间:2023-12-01 16:44:51 24 4
gpt4 key购买 nike

我对标记所有元素的 XmlPullParser 事件遇到困难,但如何将一个子元素存储到 ArrayList 中?

这是我的 xml 文件:

<site>
<name>Brake and Break</name>
<link>https://sampleactivity.000webhostapp.com/lesson_1.mp3</link>
<set>When teaching my daughter how to drive, I told her if she didn't hit the brake in time she would break the car's side mirror.</set>
<set>You shouldn’t brake as often as you do. You are going to break your car’s brakes.</set>
<set>I think this relationship is moving too fast for me. Maybe it's best to just hit the brake than to completely break up.</set>
<image>https://sampleactivity.000webhostapp.com/stckOvflw.png</image>
</site>

在我的 xml 文件中,我有元素名称 SET 那么如何将所有设置的元素和属性存储到数组列表中?

这是我的 xmlpullparser.java 代码:

switch (eventType) {
case XmlPullParser.START_TAG:

if (tagname.equalsIgnoreCase(KEY_SITE)) {

curStackSite = new StackSite();
}
break;


case XmlPullParser.TEXT:

curText = xpp.getText();
break;


case XmlPullParser.END_TAG:
if (tagname.equalsIgnoreCase(KEY_SITE)) {

stackSites.add(curStackSite);
} else if (tagname.equalsIgnoreCase(KEY_NAME)) {

curStackSite.setName(curText);
} else if (tagname.equalsIgnoreCase(KEY_LINK)) {

curStackSite.setLink(curText);
} else if (tagname.equalsIgnoreCase(KEY_SET)) {
ArrayList<String> wew = new ArrayList<String>();
wew.add(curText);
curStackSite.setAlAbout(wew); <--- How can I store all element to arraylist here?
curStackSite.setSet(curText);
} else if (tagname.equalsIgnoreCase(KEY_IMAGE_URL)) {

curStackSite.setImgUrl(curText);
}
break;

default:
break;
}

我已经尝试过 dom 解析,但在我的代码中仍然没有多大作用。

更新:

这是我的堆栈站点值:

public class StackSite {
private String name;
private String link;
private String about;
private List<String> AlAbout;
private String id;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}

public String getAbout() {
return about;
}
public void setAbout(String about) {this.about = about;}

public List<String> getAlAbout() {
return AlAbout;
}
public void setAlAbout(List<String> AlAbout) {this.AlAbout = AlAbout;}

@Override
public String toString() {
return "StackSite [name=" + name + ", link=" + link + ", about="
+ about + ", Array sets=" + AlAbout + "]";
}
}

最佳答案

如果StackSite类有一个这样的成员:

List<String> allSets;

以及 StackSite 的构造函数初始化allSets到一个空列表:

allSets = new ArrayList<>();

然后在 END_TAG情况 tagName.equalsIgnoreCase(KEY_SET)您只需添加设置的文本:

curStackSite.allSets.add(curText);

将在allSets中添加一个单独的条目每个 <set>…</set> 的列表遇到过。

解析 allSets 结束时StackSite 的列表成员包含 0 个或多个设置内容条目。

对于属性,您可能希望为StackSiteSet创建一个新类。其中包含 String设置文本和属性字段,而不是仅将集合视为字符串。

所以你的END_TAG处理</set>应该看起来像:

} else if (tagname.equalsIgnoreCase(KEY_SET)) {
// Get the list and add another element to it.
curStackSite.getAlAbout().add(curText);
}

关于java - Android 中如何将一个子元素值放入 ArrayList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61801673/

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