2013-05-17 94 views
3

我正在使用Spring,它是REST模板,它使用JAXB将XML从webservice绑定到域对象。从Web服务返回的XML如下:使用JAXB忽略根元素

<response> 
    <user> 
     <id>1</id> 
     <name>bob</name> 
     ... 
    </user> 
</response> 

我有一个用户类,如下所示:

public class User { 

    private String id; 

    private String name; 

} 

是否有可能忽略了“反应”元素,并指定根元素“用户”?

感谢您的任何帮助。

+0

它是Spring而不是JAXB,它添加了'response'元素。 –

+0

嗨Blaise,不幸的是Web服务添加了响应元素,但我只对XML中的用户部分感兴趣。 – Swordfish

回答

0

表示您的班级的XML,具有像根<user>标签。

所以:

  • 或者您使用的是Java解析器提取用户子树和使用后JAXB,
  • 否则你创建另一个类response来映射你的web服务的响应。

我建议第二选择。

有关信息,当您使用任何XML绑定框架时,​​必须记住类字段和XML标记之间的一对一关系。

+1

感谢您的回复。我确实通过创建一个“Response”类并将“User”作为映射的XML元素来实现它,但我想知道是否可以解决必须映射Response对象的问题。我使用Spring的Rest模板自动将XML绑定到对象,所以我不确定是否可以预处理XML。理想情况下,我想在用户类中做的是@XmlRootElement(name =“Response/User”),但我怀疑这是行得通的。 – Swordfish