1

我似乎无法解析以下 xml 中的值。如果我使用 google-http-java 客户端,解析 xml 类型的解析器类是什么?下面的示例 xml 和解析器

<feed>
  <text start="1" end="10"> Text 1 </text> 
  <text start="2" end="20"> Text 2 </text> 
  <text start="3" end="30"> Text 3 </text> 
  <text start="4" end="40"> Text 4 </text> 
  <text start="5" end="50"> Text 5 </text> 
</feed>

Class Feed {
 @Key("text")
 public List<Text> textList;
}

Class Text {
  @Key("@start")
  public String startTime;


  @Key("@end")
  public String endTime; 
}

要清楚,我想要开始属性值、结束属性值和文本内容。似乎有效的方法如下

HttpRequestFactory httpRequestFactory =
        HTTP_TRANSPORT.createRequestFactory(
            new HttpRequestInitializer() {
              @Override
              public void initialize(HttpRequest request) throws IOException {
                request.setParser(new XmlObjectParser(new XmlNamespaceDictionary().set("", "")));
              }
            });    
Feed feedObject = httpResponse.parseAs(Feed.class);

但我无法获得内容价值。

如果我将提要类更改为以下

Class Feed {
     @Key("text")
     public List<String> textList;
}

我只能获取内容而不是属性值!

任何示例源代码都很难找到(在 github、stackoverflow 等)

4

1 回答 1

0

好的,这里是通过github梳理后的答案!!!

<feed>
  <text start="1" end="10"> Text 1 </text> 
  <text start="2" end="20"> Text 2 </text> 
  <text start="3" end="30"> Text 3 </text> 
  <text start="4" end="40"> Text 4 </text> 
  <text start="5" end="50"> Text 5 </text> 
</feed>

Class Feed {
 @Key("text")
 public List<Text> textList;
}

Class Text {
  @Key("@start")
  public String startTime;

  @Key("@end")
  public String endTime; 

  @Key("text()")
  public String payload; 
}
于 2017-03-26T00:38:12.823 回答