我试图从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.
我给CalendarEntry类添加了gCal:color键:
@Key("gCal:color/@value")
public String color;
当我读取结果的CalendarEntry时,"color"字符串仍然是空的。
没有发生运行时错误。一个轻微的改变,比如"gCal:colors",会导致HTTP 400错误请求。我能够添加@Key("id"),这工作得很好,但是没有gCal的东西回来。
想法吗?
已解决…
我必须分别提取gCal:color
和@value
,而不是用XPath一次性提取。啊!把时间浪费在愚蠢的事情上,但没关系。
public class ColorNode
{
@Key("@value")
public String color;
}
然后CalendarEntry类有一个Key用于ColorNode:
@Key("gCal:color")
public ColorNode colorNode;