0

我正在使用 Simple XML 框架来解析来自肥皂网络服务的响应。我只想解析实际的Web 服务响应并忽略soap 信封和正文(即我不希望我的所有响应都有信封和正文类)。

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 类。

这可能吗?

谢谢大卫

4

3 回答 3

0

您可以使用 StAX 解析器来解析 XML 文档。然后,您可以使用结果XMLStreamReader前进到您希望开始的元素,然后从那里解组(假设 Simple XML 可以从 StAX 解组XMLStreamReader)。

下面是一个答案的链接,我做了一些非常相似但使用JAXB (JSR-222) 的事情:

了解更多信息

于 2012-06-22T20:10:15.493 回答
0

您可以尝试使用Java Xpath API通过 xpath 查询获取部件。

于 2012-06-22T15:28:58.537 回答
0

基本上,您想要做的是使用 @Path

所以,你会有

@Root(strict=false, name="Envelope")  
public class Root {
    @Path("Body")
    @Element(inline=true)
    private TopGoalScorersResult topGoalScorersResult;
}
于 2013-01-04T13:45:21.733 回答