Ich benutze StAX Iterator API, um ein XML zu lesen.Wie bekomme ich den gesamten Text des StAX XMLEvent Objekts?
XML:
<FormData OID="QUAL">
<IGData IGRepeatKey="1" IGOID="SQUAL" TType="Insert">
<IData Value="0859" IOID="SID"></IData>
<IData Value="DM" IOID="RDOMAIN"></IData>
</IGData>
<IGData IGRepeatKey="1" IGOID="SQUAL" TType="Insert">
<IData Value="0860" IOID="SID"></IData>
<IData Value="2013-01-03T02:00" IOID="QVAL"></IData>
</IGData>
</FormData>
und Stax-Code:
while(xmlEventReader.hasNext()){
xmlEvent = xmlEventReader.nextEvent();
eventString = xmlEvent.toString();
if(xmlEvent.isStartElement() && eventString.contains("FormData") && eventString.contains("QUAL")){
//do something
}
}
Es funktioniert (eventString hat ganzen Text von XMLEvent) in meiner lokalen Umgebung.
Aber wenn ich dies in Server bereitstellen, enthält EventString wie "Stax Event # 1". Also, wenn die Bedingung falsch zurückkehrt.
Ich dachte, beide verwenden verschiedene XMLEvent-Implementierungen. Also überprüfte ich es durch den Code, und jar ist in beiden Umgebungen gleich: jre1.8.0_73/lib/rt.jar! /javax/xml/stream/events/XMLEvent.class
So erhalten Sie den gesamten Text von XMLEvent Objekt? Mache ich hier etwas falsch? Bitte schlagen Sie andere Alternativen vor.
In der Stax-API gibt es nichts, das angibt, was toString zurückgeben soll. Du solltest also niemals dagegen programmieren. Die tatsächliche Implementierung von Stax wird zur Laufzeit abhängig von vielen Faktoren gewählt (System env, Klassenlader-Bestellung von Gläsern, die sich in JSE et JEE unterscheiden, Vorhandensein von META-INF-Dateien ...). Sie können es lesen, aber zählen Sie nicht nur auf die gleichen Gläser, die anwesend sind. Sie sollten mehr über die XMLEvent-API lesen, einem Lernprogramm folgen, es wird NICHT für das gemacht, was Sie hier tun, z. Beginnen an einem gegebenen Knoten und Drucken des Inhalts dieses Knotens. Es ist machbar, aber komplex. – GPI
@GPI Wie kann ich den Inhalt des Knotens lesen? – Hello
@GPI Warum funktioniert es in einer lokalen Umgebung? Irgendeine Idee – Hello