有没有一种使用XMLBeans进行XML属性比较的简单方法?

时间:2011-09-14 18:58:05

标签: xml comparison xmlbeans

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

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

<person hair="brown" />

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

1 个答案:

答案 0 :(得分:0)

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

//person[@hair='brown']

使所有具有'hair'属性的person元素等于'brown'。我认为你可以针对XMLBeans XMLObject执行XPath表达式(或者它是XQuery?,但这几乎是一样的),所以,是的,XMLBeans已经具备了这种功能。据我所知,你会得到一个XMLObjects列表,但我不知道是否可以将它们转换为特定的映射Java类。奇怪的野兽,XMLBeans!我们转到JAXB并且没有遗憾。