How to get element nur Elemente mit Werten Stax
Ich versuche nur Elemente, die text -, ex-xml :
<root>
<Item>
<ItemID>4504216603</ItemID>
<ListingDetails>
<StartTime>10:00:10.000Z</StartTime>
<EndTime>10:00:30.000Z</EndTime>
<ViewItemURL>http://url</ViewItemURL>
....
</item>
Sollte es drucken
Element Local Name:ItemID
Text:4504216603
Element Local Name:StartTime
Text:10:00:10.000Z
Element Local Name:EndTime
Text:10:00:30.000Z
Element Local Name:ViewItemURL
Text:http://url
Dieser code druckt auch root -, Artikelnummer etc. Ist es auch möglich, es muss sein, ich kann einfach nicht google es.
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream input = new FileInputStream(new File("src/main/resources/file.xml"));
XMLStreamReader xmlStreamReader = inputFactory.createXMLStreamReader(input);
while (xmlStreamReader.hasNext()) {
int event = xmlStreamReader.next();
if (event == XMLStreamConstants.START_ELEMENT) {
System.out.println("Element Local Name:" + xmlStreamReader.getLocalName());
}
if (event == XMLStreamConstants.CHARACTERS) {
if(!xmlStreamReader.getText().trim().equals("")){
System.out.println("Text:"+xmlStreamReader.getText().trim());
}
}
}
Bearbeiten falschen Verhalten :
Element Local Name:root
Element Local Name:item
Element Local Name:ItemID
Text:4504216603
Element Local Name:ListingDetails
Element Local Name:StartTime
Text:10:00:10.000Z
Element Local Name:EndTime
Text:10:00:30.000Z
Element Local Name:ViewItemURL
Text:http://url
Ich will nicht, dass die root und andere Knoten, die nicht über den text, der gedruckt werden, nur die Ausgabe, die ich oben schrieb. danke
- Was ist das falsche Verhalten, dass dies zurzeit durchführen?
- Ich aktualisiert meine Frage. ty
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
SAX-basierte Lösung (funktioniert):
<item>
) beginnt und etwas schreiben, bevor er oder Haupt-element(nicht vor oder nach jedem element)?Stax-Lösung :
Analysieren Dokument
Nun alle Knoten aus dem Dokument sind in einer NodeList, so tun dies weiter :
Dann für jeden element-Knoten mit Gültiger text, name und Wert
Reihe von nützlichen Methoden, um zu überprüfen Knoten :
Ich auch StringUtils, die Sie bekommen können, dass durch die Einbeziehung dieser in Ihrem pom.xml wenn Sie maven :
Dies ist ineffizient, wenn Sie Lesen, riesige Dateien, aber nicht so viel, wenn Sie teilen Sie Sie zuerst. Dies ist, was ich habe kommen mit(mit google). Es gibt bessere Lösungen, das ist meins, ich bin ein amateur(für jetzt).