我正在尝试从Android上的google-api-java-client中的Atom XML响应中获取<gCal:color value="xxxxxx">值属性。由于某种原因,尽管为它定义了@Key,但它没有被解析。我可以看到它出现在实际的XML响应中,但是没有正确解析到pojo中。

考虑一下我修改的这些代码段...

我添加了gCal命名空间:

AtomParser parser = new AtomParser();
parser.namespaceDictionary = Util.DICTIONARY;
parser.namespaceDictionary.set("gCal", "http://schemas.google.com/gCal/2005"); // I added this.


我将gCal:color键添加到CalendarEntry类:

@Key("gCal:color/@value")
public String color;


当我读取生成的CalendarEntry时,“颜色”字符串仍然为null。

没有运行时错误发生。稍作更改,例如“ gCal:colors”,将导致HTTP 400错误请求。我能够添加@Key(“ id”),效果很好,但是没有gCal东西回来。

有什么想法吗?

最佳答案

解决了...

我不得不分开拉gCal:color@value,而不是一次用XPath猛拉。时间浪费在愚蠢的狗屎上,但这没关系。

所以我用一个键创建了一个名为ColorNode的类:

public class ColorNode
{
    @Key("@value")
    public String color;
}


然后CalendarEntry类具有ColorNode的键:

@Key("gCal:color")
public ColorNode colorNode;

07-28 14:16