我正在尝试从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;