将XML结构的一个子元素转换为Java对象
我有一个从XMPP订阅接收的消息的XML结构(如下)。我只关心此消息的“用户”部分,并希望将其转换为Java中等效的“用户”对象,以便使用它执行其他处理。有没有一种方法可以在Java中实现这一点
我知道我能做到这一点的唯一方法是使用Jackson注释(例如@JsonProperty)并为所有父元素(事件、通知、更新、数据等)创建等价的对象,但我并不真正关心它们,因此这似乎是一种浪费
我不知道如何将“用户”部分转换为一个对象,而忽略其余部分
<event xmlns='http://jabber.org/protocol/pubsub#event'>
<notification xmlns='http://jabber.org/protocol/pubsub'>
<Update>
<data>
<user>
<dialogs>/finesse/api/User/1234/Dialogs</dialogs>
<extension></extension>
<firstName>1234</firstName>
<lastName>1234</lastName>
<loginId>1234</loginId>
<loginName>1234</loginName>
<roles>
<role>Agent</role>
</roles>
<state>LOGOUT</state>
<stateChangeTime>2015-03-11T14:25:42Z</stateChangeTime>
<teamId>1</teamId>
<teamName>Default</teamName>
<uri>/finesse/api/User/1234</uri>
</user>
</data>
</Update>
</notification>
</event>
# 1 楼答案
这有点难看,对于庞大的xml数据来说不是最佳选择,但您可以使用例如dom4j从xml中提取用户部分,而不是使用Jackson解析“仅用户xml”部分