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