gpt4 book ai didi

java - 简单 XML - 如何从内部元素开始获取数据?

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

我正在尝试使用 simple xml 从 xml 创建元素对于android,我对根不感兴趣,但只对一些嵌套元素感兴趣。我只对从下面的 xml 中获取帐户对象感兴趣。

<response xmlns="http://abc.abcdef.com/rest/xyz">
<request>
<channel>334892326</channel>
<number>486</number>
</request>
<status>
<code>200</code>
</status>
<results>
<account>
<creationTimestamp>2014-01-12T1:31:07Z</creationTimestamp>
<category>
<type>User-1</type>
<name>User-1</name>
</category>
</account>
<results>
</response>

我已经在 bean 中尝试了以下操作,但我得到的对象包含的所有值都是 null。

@Root(strict = false, name = "account")
@Path("response/results/account")
public class Account implements Serializable {

@Element(required = false)
private String creationTimestamp;

@Element(required = false)
private Category category;
}

最佳答案

起初指定的 XML 格式不正确。但主要问题是由 Path 引起的注释 - “...将属性和元素映射到关联的字段或方法”,它不适用于类,仅适用于方法和字段。

所以这段代码很容易解析您的 XML 结构(简化版):

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.core.Persister;

import java.io.File;

@Root(strict = false)
public class Account {

@Element
@Path("results/account")
String creationTimestamp;

@Element
@Path("results/account")
Category category;

public static void main(String[] args)
throws Exception
{
Account account = new Persister().read(Account.class, new File("example.xml"));

System.out.println(account.creationTimestamp);
System.out.println(account.category.type);
System.out.println(account.category.name);
}
}

@Root
class Category {

@Element
String type;

@Element
String name;
}

不幸的是,@Path 注释无法提取为类注释,这就是为什么您必须为每个字段编写它。

关于java - 简单 XML - 如何从内部元素开始获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695017/

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