2

我有一个 Rss 提要,我想使用 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 中的元素。

4

2 回答 2

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;
}
于 2013-05-20T10:45:22.333 回答
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;
}
于 2016-02-11T13:15:21.887 回答