我有一个Rss feed我想使用Simple Framework在Java中解析。 我遇到了2个具有相同名称的元素的问题,但其中一个元素已分配了命名空间。 这是一个示例xml:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/">
<item>
<title>Regular Titel</title>
<dc:title>Dc Titel</dc:title>
</item>
</rss>
目前我的Item.class看起来像这样:
@Root
public class Item {
@Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc")
@Element(name="title")
public String dcTitle;
@Element
public String title;
}
这显然会导致PersistenceException(字段'title'上的名称'title'的重复注释......),但我真的不知道应该怎么做。请有人帮我解决这个问题!
更新
虽然解决方案有效,但我现在在序列化对象时遇到了问题。我声明的命名空间未分配给输出xml中的元素。
答案 0 :(得分:1)
尝试
@Root
public class Item {
@Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc")
@Path("title[1]")
@Text
public String dcTitle;
@Path("title[2]")
@Text
public String title;
}
答案 1 :(得分:0)
你试过这个吗?
@Root
@Namespace(reference = "http://purl.org/dc/elements/1.1/", prefix = "dc")
public class Item {
@Element (name = "dc:title")
public String dcTitle;
@Element (name = "title")
public String title;
}