0

假设一个 bean 具有一组分层属性,XMLBeans 是否提供了一种方法来确定该 bean 是否具有这些属性子集的某些值?我能想出的解决这个问题的最佳方法是创建另一个具有您所寻找的属性和值集的 bean,并查看您的 bean 是否包含与您设置的相同的属性(以及这些属性的值) .

例如,假设您有一个 XML 人员列表,并且您想要查找棕色头发的人员。你可以这样设置一个bean:

<person hair="brown" />

并在您的列表中找到基本上包含该 bean 作为子集的项目。我可以通过递归迭代测试 bean 的属性层次结构(在本例中为棕色头发的人)来做到这一点,并检查列表中的每个 bean 是否包含该属性,并具有该属性的值。但这似乎是一个常见的任务,我想知道 XMLBeans 库是否已经提供了这个功能。

4

1 回答 1

0

我不知道什么是分层属性,但我知道您可以使用 XPath 查询原始 XML:

//person[@hair='brown']

获取所有“头发”属性等于“棕色”的人元素。而且我认为您可以针对 XMLBeans XMLObject 执行 XPath 表达式(或者它是 XQuery?,但这几乎是同一件事),所以,是的,XMLBeans 已经具有这种功能。据我记得,您会得到一个 XMLObjects 列表,但我不知道这些是否可以转换为它们特定的映射 Java 类。奇怪的野兽,XMLBeans!我们继续使用 JAXB,并没有后悔。

于 2011-09-14T23:14:14.393 回答