假设一个bean具有一组具有一组分层属性的bean,XMLBeans是否提供了一种方法来确定该bean是否具有这些属性子集的特定值?解决此问题的最佳方法是使用您要查找的属性和值集创建另一个bean,并查看您的bean是否包含与您设置的属性相同的属性(以及这些属性的值)
例如,假设您有一个XML人员列表,并且您希望找到棕色头发的人。你可以这样设置一个bean:
<person hair="brown" />
找到列表中基本上包含该bean作为子集的项目。我可以通过递归迭代测试bean的属性层次结构(在这种情况下,棕色头发的人),并检查列表中的每个bean是否包含该属性,并具有该值。但这看起来似乎是一项常见的任务,我想知道XMLBeans库是否已经提供了这个功能。
答案 0 :(得分:0)
我不知道层次结构属性是什么,但我知道您可以使用XPath查询原始XML:
//person[@hair='brown']
使所有具有'hair'属性的person元素等于'brown'。我认为你可以针对XMLBeans XMLObject执行XPath表达式(或者它是XQuery?,但这几乎是一样的),所以,是的,XMLBeans已经具备了这种功能。据我所知,你会得到一个XMLObjects列表,但我不知道是否可以将它们转换为特定的映射Java类。奇怪的野兽,XMLBeans!我们转到JAXB并且没有遗憾。