如何获取具有我指定元素值的元素? 例如,我只需要元素ID = 2的地图位置元素。 这是我的xml结构:
<table>
<position>
<id>1</id>
</position>
<position>
<id>2</id>
</position>
<position>
<id>3</id>
</position>
</table>
我知道我可以使用JAXB将整个文件映射为两个类:
@Getter
@Setter
@XmlRootElement(name = "table")
@XmlAccessorType(XmlAccessType.FIELD)
public class Table {
@XmlElement(name = "position")
private List<TableElement> tableElementList = new ArrayList<>();
}
@Getter
@Setter
@XmlRootElement(name = "position")
@XmlAccessorType(XmlAccessType.FIELD)
public class TableElement {
@XmlElement(name = "id")
private String code;
}
这是问题所在。我不想映射整个结构(我的文件最多可以映射300个元素),而仅映射满足条件(id = 2)的元素。
答案 0 :(得分:0)
如果只需要一部分,则可以使用StAX之类的流解析器:https://docs.oracle.com/javase/tutorial/jaxp/stax/example.html#bnbgh
另外,您应该看看In JAXB or Xstream is it possible to Filter out certain Child Elements on Type/value during unmarshall,因为它看起来很相似。