我正在尝试将 JAXB 注释添加到一个类中,以便解组看起来类似于此的 XML(注意我不需要将 java bean 编组为 XML ......):
<fixture_statistics id="3812596">
<home_team_stats id="2">
<id>2</id>
<tackles>58</tackles>
<possession>1868</possession>
<territory>2603</territory>
<minutes_in_22>1316</minutes_in_22>
...
</home_team_stats>
<guest_team_stats id="21061">
<id>21061</id>
<tackles>20</tackles>
<possession>3114</possession>
<territory>2379</territory>
<minutes_in_22>1171</minutes_in_22>
...
</guest_team_stats>
<home_player_1 id="2306143" teamid="2">
<id>2306143</id>
<tackles>3</tackles>
<metres_gained>38</metres_gained>
...
</home_player_1>
<home_player_1 id="2306143" teamid="2">
<id>2306143</id>
<tackles>3</tackles>
<metres_gained>38</metres_gained>
...
</home_player_1>
<home_player_1 id="2306143" teamid="2">
<id>2306143</id>
<tackles>3</tackles>
<metres_gained>38</metres_gained>
...
</home_player_1>
...
<guest_player_1 id="2306143" teamid="2">
<id>2306143</id>
<tackles>3</tackles>
<metres_gained>38</metres_gained>
...
</guest_player_1>
<guest_player_2 id="2306143" teamid="2">
<id>2306143</id>
<tackles>3</tackles>
<metres_gained>38</metres_gained>
...
</guest_player_2>
<guest_player_3 id="2306143" teamid="2">
<id>2306143</id>
<tackles>3</tackles>
<metres_gained>38</metres_gained>
...
</guest_player_3>
...
</fixture_statistics>
* 请注意,当我为这个问题复制和粘贴时,请忽略一些元素值...
我已经设法将“fixture_statistics”、“home_team_stats”和“guest_team_stats”元素映射到它们各自的类,并且我能够正确解组这些元素,但我遇到了“home_player_n”和“guest_player_n”元素的问题. 我创建了一个包含在这些元素中找到的属性的类,但我不知道如何处理元素具有不同名称的事实 - “home_player_1”到“home_player_22”,对于来宾玩家也是如此。
这是我的夹具统计类的示例,以及我的夹具玩家统计类,以便有人可以指出我哪里出错了......
@XmlRootElement(name = "fixture_statistics")
@XmlAccessorType(XmlAccessType.FIELD)
public class FixtureStatistics {
private Collection<FixturePlayerStatistics> homeTeamPlayerStatistics = new ArrayList<>();
private Collection<FixturePlayerStatistics> guestTeamPlayerStatistics = new ArrayList<>();
}
@XmlAccessorType(XmlAccessType.FIELD)
public class FixturePlayerStatistics {
@XmlElement(name="id")
private Long playerId;
private Integer tackles;
@XmlElement(name="metres_gained")
private Integer metresGained;
}
在 FixturePlayerStatistics 类上,我无法添加 XMlRootElement 注释,因为该元素可能是 44 个字符串中的 1 个,而且我还暂时从 FixtureStatistics 类的集合中删除了任何注释,因为我真的不确定那里有什么。我尝试使用@XmlElementRef,指定所有可能的元素名称,但这对我来说还没有用,XML 也无法更改,而且我没有可使用的架构,只有 API 调用生成的 XML。