java获取多个同名的XML元素JAXB
可能是个愚蠢的问题,但我被卡住了
我尝试解析从REST service检索到的巨大xml文档。 我感兴趣的都是抽象的部分
<article article-type="research-article">
<front>
<article-meta>
<abstract></abstract>
<abstract abstract-type="summary"></abstract>
</article-meta>
</front>
</article>
在前面的课上,我做了以下几点:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class Front {
@XmlElementWrapper(name = "article-meta")
@XmlElement(name="abstract")
private List<AuthorSummary> authorSummaries = new ArrayList<AuthorSummary>();
/** Getter and Setter **/
}
可悲的是,我只得到了第一个摘要,但也得到了内容。你可以在下面看到我的作者总结课
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class AuthorSummary {
@XmlElement(name = "title")
private String title;
@XmlElement(name = "p")
private String content;
@XmlAttribute(name = "abstract-type")
private String abstractType;
/** Getter and Setter **/
}
所以,我被困住了,如果有任何提示,我将非常高兴
多谢各位
# 1 楼答案
我有一个解决方案,但它根本不使用jaxb,甚至不使用数据绑定。因此,如果你坚持数据绑定,我将删除我的答案。否则,我希望您指向data projection(披露:我与该项目有关联),而不是数据绑定:
与用java类反映XML结构不同,只需将java API定义为一个带有您想要的访问器(和设置器)的“投影接口”。之后,让投影框架负责读写对DOM的更改