У меня есть объект, который в настоящее время отображается с Java POJO на XML с помощью JAXB. Как только у меня есть этот XML, мне иногда приходится сворачивать его только на избранный набор элементов, основанный на вводе пользователем. Результат должен быть XML с ТОЛЬКО указанными «полями».Как фильтровать строку XML по элементам «пути» в Groovy или Java
Я столкнулся с рядом аналогичных вариантов использования, которые мы использовали SAX Filters, но они кажутся очень сложными, и ответы не дают мне, где мне нужно. Самый близкий пример: this one, что исключает один путь из результата. Я хочу, чтобы наоборот - белый список выбирает список элементов.
Пример объекта: School.xml
<SchoolInfo RefId="34060F68BE3942F1B1264E6D2CC3C353">
<LocalId>57</LocalId>
<SchoolName>Foobar School of Technology</SchoolName>
<Principal>
<FirstName>Bob</FirstName>
<LastName>Smith</LastName>
</Principal>
<StateProvinceId>34573</StateProvinceId>
<LEAInfoRefId>340666687E3942F1B1264E1223453C353</LEAInfoRefId>
<PhoneNumberList>
<PhoneNumber Type="0096">
<Number>555-832-5555</Number>
</PhoneNumber>
<PhoneNumber Type="0096">
<Number>555-999-5555</Number>
</PhoneNumber>
</PhoneNumberList>
</SchoolInfo>
задан следующий ввод в качестве "фильтра":
List<String> filter = [
"LocalId",
"SchoolName",
"Principal/FirstName",
"PhoneNumberList/PhoneNumber/Number",
]
мне нужно вывод, что:
<SchoolInfo RefId="34060F68BE3942F1B1264E6D2CC3C353">
<LocalId>57</LocalId>
<SchoolName>Foobar School of Technology</SchoolName>
<Principal>
<FirstName>Bob</FirstName>
</Principal>
<PhoneNumberList>
<PhoneNumber Type="0096">
<Number>555-832-5555</Number>
</PhoneNumber>
<PhoneNumber Type="0096">
<Number>555-999-5555</Number>
</PhoneNumber>
</PhoneNumberList>
</SchoolInfo>
Что лучшая библиотека для достижения этого? SAX Filtering чувствует себя сложной, и XSLT не кажется хорошей подгонкой, учитывая динамическую фильтрацию.
Примеры, которые помогут мне сблизиться, будут высоко оценены.
'Groovy' должно быть хорошо с' XmlParser' или 'MarkupBuild'. См. Пример [здесь] (http://mrhaki.blogspot.in/2011/05/groovy-goodness-change-xml-structure.html) – Rao
Вы ищете образец кода, который выполняет это или просто ищет рекомендации по libs? –
@ vtd-xml-author Образец кода был бы потрясающим, но я не прошу кого-либо сделать эту работу для меня. Совет по правильной библиотеке для использования и метод в этой библиотеке - это то, что я ищу. –