我使用Simple XML框架来解析soap web服务的响应。我只想解析实际的Web服务响应并忽略soap信封和正文(即我不希望我的所有响应都有Envelope和Body类。)
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类,而不需要具有Envelope和Body类。
这可能吗?
由于 大卫
答案 0 :(得分:0)
您可以尝试Java Xpath API通过xpath查询获取部件。
答案 1 :(得分:0)
您可以使用StAX解析器来解析XML文档。然后,您可以使用生成的XMLStreamReader
前进到您希望开始的元素,然后从那里解组(假设Simple XML可以从StAX XMLStreamReader
解组)。
下面是一个答案的链接,我做了一些与JAXB (JSR-222)非常相似的事情:
了解更多信息
答案 2 :(得分:0)
基本上,您想要做的是使用@Path
实现所以,你会有
@Root(strict=false, name="Envelope")
public class Root {
@Path("Body")
@Element(inline=true)
private TopGoalScorersResult topGoalScorersResult;
}