简单的XML框架仅解析XML的一部分
问题描述:
我正在使用简单的XML框架来解析来自soap web服务的响应。我只想分析实际的Web服务响应并忽略肥皂信封和正文(即,我不想让我的所有响应都有信封和正文类)。简单的XML框架仅解析XML的一部分
XML:
<Envelope>
<Body>
<TopGoalScorersResponse>
<TopGoalScorersResult>
<tTopGoalScorer>
<sName>Alan Dzagoev</sName>
<iGoals>3</iGoals>
<sCountry>Y</sCountry>
<sFlag>http://footballpool.dataaccess.eu/images/flags/ru.gif</sFlag>
<sFlagLarge>http://footballpool.dataaccess.eu/images/flags/ru.png</sFlagLarge>
</tTopGoalScorer>
</TopGoalScorersResult>
</TopGoalScorersResponse>
</Body>
</Envelope>
因此,对于这个回应,我想有TopGoalScorersResponse,TopGoalScorersResult和TopGoalScorer类和不要求有一个信封和正文类。
这可能吗?
感谢 大卫
答
您可以使用StAX解析器来解析XML文档。然后,您可以使用生成的XMLStreamReader
前进到您希望开始的元素,然后从那里解组(假设Simple XML可以从StAX XMLStreamReader
解组)。
下面是一个链接到一个答案,我做了一些非常相似,但与JAXB (JSR-222):
更多信息
答
基本上,你想要做的是使用@Path
所以实现的,你必须
@Root(strict=false, name="Envelope")
public class Root {
@Path("Body")
@Element(inline=true)
private TopGoalScorersResult topGoalScorersResult;
}