java - 使用 google-http-client-xml 解析 xml : parsing xml element content as well as attributes using XmlObjectParser

标签 java xml xml-parsing google-api-java-client google-http-client

我似乎无法解析以下 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);

但我无法获取内容值。

如果我将 Feed 类更改为以下内容

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

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

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

最佳答案

好吧,这是梳理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; 
}

关于java - 使用 google-http-client-xml 解析 xml : parsing xml element content as well as attributes using XmlObjectParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42947321/

相关文章:

xml - Perl XML::DOM 解析器的使用

java - 如何避免Spring的@RequestMapping路径冲突?

java - 我正在使用 jsoup 从网站 url 中提取图像,但我希望首先加载页面,有办法做到这一点吗?

java - Mockito - 带 Spring 的 MockSettings

java - XPath 代码创建 IOException

python - 通过 Python 注释和取消注释 XML

java - JT400 - 获取命令生成的假脱机文件

java - Java 中使用运算符 == 比较对象和基元如何工作?

php - 产品评论未显示在产品评论页面上

.net - 使用 XmlNamespaceManager 检索所有 namespace 的列表