Hallo,
ich stehe vor der Aufgabe den Inhalt einer XML zu verarbeiten. Da die zu verarbeitende XML zu groß für einen DOM-Parser ist, möchte ich die XML mit einem Stax parsen. Für bestimme Elemente innerhalb der XML ist es erforderlich den Teilbaum als XML auszugeben. Im Beispiel soll Element B mit komplettem Inhalt als XML ausgegeben werden.
[HIGHLIGHT="xml"]
<ns1:A>
<ns2:B>
<ns3:C/>
.....
<ns3
/>
</ns2:B>
....
<ns2:B/>
</ns1:A>[/HIGHLIGHT]
Mein Ansatz war, die XML mit einem Stax (StreamReader) zu parsen. "Trifft" der Parser auf das Element B, wird der Inhalt mit einer XSL-Transformation transformiert (siehe Java-Code). Die resultierende XML beginnt mit der XML-Deklaration, wobei diese für die Weiterverarbeitung des Teilbaumes etwas störend ist. Ich habe dann erfolglos durch das Setzen einer entsprechenden Property versucht, die XML-Deklaration zu unterdrücken.
[HIGHLIGHT="Java"]
StAXSource source = new StAXSource(...);
StreamResult result = new StreamResult(...);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutpuKeys.OMIT_XML_DECLARATION, "yes");
transformer(source, result);
[/HIGHLIGHT]
Kenn jemand eine Lösung für das Problem?
Viele Grüße
Hans
ich stehe vor der Aufgabe den Inhalt einer XML zu verarbeiten. Da die zu verarbeitende XML zu groß für einen DOM-Parser ist, möchte ich die XML mit einem Stax parsen. Für bestimme Elemente innerhalb der XML ist es erforderlich den Teilbaum als XML auszugeben. Im Beispiel soll Element B mit komplettem Inhalt als XML ausgegeben werden.
[HIGHLIGHT="xml"]
<ns1:A>
<ns2:B>
<ns3:C/>
.....
<ns3
</ns2:B>
....
<ns2:B/>
</ns1:A>[/HIGHLIGHT]
Mein Ansatz war, die XML mit einem Stax (StreamReader) zu parsen. "Trifft" der Parser auf das Element B, wird der Inhalt mit einer XSL-Transformation transformiert (siehe Java-Code). Die resultierende XML beginnt mit der XML-Deklaration, wobei diese für die Weiterverarbeitung des Teilbaumes etwas störend ist. Ich habe dann erfolglos durch das Setzen einer entsprechenden Property versucht, die XML-Deklaration zu unterdrücken.
[HIGHLIGHT="Java"]
StAXSource source = new StAXSource(...);
StreamResult result = new StreamResult(...);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutpuKeys.OMIT_XML_DECLARATION, "yes");
transformer(source, result);
[/HIGHLIGHT]
Kenn jemand eine Lösung für das Problem?
Viele Grüße
Hans