Существует ли простой способ сравнения атрибутов XML с использованием XMLBeans? - PullRequest
0 голосов
/ 14 сентября 2011

Предполагая, что у каждого есть bean-компонент с набором иерархических атрибутов, предоставляет ли XMLBeans способ определить, имеет ли этот bean-компонент определенные значения для подмножества этих атрибутов?Лучший способ решить эту проблему - создать еще один компонент с набором атрибутов и значений, которые вы ищете, и посмотреть, содержит ли ваш компонент те же атрибуты (и значения для этих атрибутов), что и тот, который вы настроили..

Например, представьте, что у вас есть список XML-людей, и вы хотите найти людей с каштановыми волосами.Вы можете настроить bean-компонент следующим образом:

<person hair="brown" />

и найти элементы в своем списке, которые по существу содержат этот bean-компонент в качестве подмножества.Я мог бы сделать это путем рекурсивной итерации по иерархии атрибутов тестового компонента (в данном случае это человек с каштановыми волосами) и проверить, содержит ли каждый компонент в списке этот атрибут и имеет ли это значение для него.Но похоже, что это может быть обычной задачей, и я хотел выяснить, предоставляет ли библиотека XMLBeans эту функциональность.

1 Ответ

0 голосов
/ 15 сентября 2011

Я не знаю, что такое иерархический атрибут, но я знаю, что вы можете запросить исходный XML с помощью XPath:

//person[@hair='brown']

чтобы получить все элементы персонажа с атрибутом 'hair', равным 'brown'. И я думаю, что вы можете выполнять выражения XPath против XMLObject XMLBeans (или это был XQuery?, Но это будет почти то же самое), так что да, у XMLBeans уже есть эта функциональность. Насколько я помню, вы получите список обратно объектов XMLObjects, но я не знаю, могут ли они быть преобразованы в их конкретные сопоставленные Java-классы или нет. Странный зверь, XMLBeans! Мы перешли к JAXB и не жалеем.

...