Ich habe ein Objekt, das derzeit von einem Java-POJO zu XML mit JAXB zugeordnet ist. Sobald ich diese XML habe, muss ich sie gelegentlich auf eine Auswahl von Elementen reduzieren, die auf der Eingabe durch einen Benutzer basieren. Das Ergebnis sollte XML mit NUR den angegebenen "Feldern" sein.Wie filtere ich XML-String für Element "Pfade" in Groovy oder Java
Ich bin auf eine Reihe von ähnlichen Anwendungsfällen gestoßen, die uns SAX Filter betreffen, aber sie scheinen sehr kompliziert zu sein und die Antworten bringen mich nicht ganz dorthin, wo ich sie brauche. Das nächste Beispiel ist this one, das einen einzelnen Pfad vom Ergebnis ausschließt. Ich möchte das Gegenteil - Whitelist eine ausgewählte Liste von Elementen.
Beispiel Objekt: 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>
In Anbetracht der folgenden Eingabe als "Filter":
List<String> filter = [
"LocalId",
"SchoolName",
"Principal/FirstName",
"PhoneNumberList/PhoneNumber/Number",
]
muss ich die Ausgabe sein:
<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>
Was ist Die beste Bibliothek, um dies zu erreichen? SAX Filtering fühlt sich zu kompliziert an und XSLT scheint angesichts der dynamischen Filterung nicht gut zu passen.
Beispiele, die mir näher kommen, wären sehr willkommen.
'Groovy' sollte gut sein mit' XmlParser' oder 'MarkupBuild'. Sehen Sie ein Beispiel [hier] (http://mrhaki.blogspot.in/2011/05/groovy-goodness-change-xml-structure.html) – Rao
Suchen Sie nach Codebeispielen, die dies bewerkstelligen oder nur nach Empfehlungen zu libs suchen? –
@ vtd-xml-author Ein Code-Beispiel wäre toll, aber ich bitte niemanden, die Arbeit für mich zu erledigen. Ich suche Ratschläge für die richtige Bibliothek und die Methode in dieser Bibliothek. –