2011-04-19 8 views
1

Android에서 google-api-java-client의 Atom XML 응답에서 <gCal:color value="xxxxxx"> 값 속성을 얻으려고합니다. 무엇인가의 이유 때문에 @Key가 정의되어 있음에도 불구하고 파싱되지 않습니다. 실제 XML 응답에 나타나는 것을 볼 수 있지만 pojo로 제대로 파싱되지 않았습니다. CalendarEntry 클래스에 컬러 키 :gCal : 자바 용 Google API의 색상을 가져 오시겠습니까?

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

내가 gCal 추가 :

내가 변경 한 코드의이 조각을 고려은 ...

은 내가 gCal 네임 스페이스를 추가

결과 CalendarEntry를 읽을 때 "color"문자열은 여전히 ​​null입니다.

런타임 오류가 발생하지 않습니다. "gCal : colors"와 같이 약간 변경하면 HTTP 400 잘못된 요청이 발생합니다. @Key ("id")를 추가 할 수있었습니다.이 기능은 훌륭하게 작동하지만 gCal은 돌아 오지 않습니다.

생각하십니까?

답변

1
해결

...

나는 우 .. XPath를 함께 급습 오히려 하나보다, 별도로 gCal:color@value을 당겨했다! 시간이 바보 똥 낭비,하지만 괜찮아요 ..

그래서 내가 하나의 키와 ColorNode라는 클래스를 생성 :

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

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

그리고 CalendarEntry 클래스 다음 ColorNode의 키가

관련 문제