Java und XSLT: Performanz-Problem

Status
Nicht offen für weitere Antworten.
I have a performance issue concerning Java and XSLT: my goal is to transform an xml file (source.xml)
by using a given xsl file (transformation.xsl). As result I would like to get a String object, in which the result
of the transformation (html-code) is in, so that I can display it in a browser. The problem is the long time
it takes for the code below to run through.


Code:
xml = new File("C:\\source.xml");
xmlSource = new StreamSource(xml);

xslt = new File("C:\\transformation.xsl");
StreamSource xsltSource = new StreamSource(xslt);

TransformerFactory transFact = TransformerFactory.newInstance();
trans = transFact.newTransformer(xsltSource);

StringWriter stringWriter = new StringWriter();
StreamResult streamResult = new StreamResult(stringWriter);
trans.transform(xmlSource, streamResult);

String output = stringWriter.toString();
stringWriter.close();

Before, I made the same transformation in an xml development environment, named Cooktop
(see http://xmlcooktop.com/). The transformation took about 2 seconds. With the code above in Java it
takes about 20 seconds. :?

Is there a way to make the transformation in Java faster?

Thanks in advance,

Marcello
Oldenburg, Germany
xerxez@gmx.de

*****
*****

The idea to load the code before the result is requested I have implemented. But that surprisingly doesn't bring any nameable improvement in the time it takes the code to run through.

Though I think this is very close to the solution already. Next step I will try to find a way to pre-parse the input document and the transform document. Because I think that especially the large input document takes quite a while to get parsed.

Hatte vielleicht jemand schoneinmal ein ähnliches Problem und kann mir da weiterhelfen?
Kann man ein Eingabe-XML-Dokument vorab parsen und dann die Transformation ausführen? Habe bereits versucht ein DOM aus dem Eingabe-XML-Dokument zu erstellen und die Transformation dann auszuführen. Aber das DOM war anscheinend zu gross, denn ich bekam einen
java.lang.OutOfMemoryError.
 
1. I use JAXP as API. But I think this uses Xalan-J as XSLT processor.
2. The document doesn't even get parsed in the transformation proccess. As far as I know the transformation gets done through a pluggable transform implementation similar to parsing.
3. The file has 8MB

I'll have a closer look to the link you sent me and try, if that brings an improvement.

THANKS

Marcello
 

huckfinn

Aktives Mitglied
Auf jeden Fall wird der Code geparst. Ich denke das Teil, via JAXP oder SAX oder sonst was, muß den Pfadausdruck emitteln um
den Pfad Ausdruck oder Mannigfaltigkeiten davon ( z.B */Name) aufzubauen oder Muster zu erkennen. In meiner Vorstellung hält SAX dabei kein Speichermodell des gesamten Dokumentes sondern nur den oder die Pfadausdrücke die im XLST Skritp gebraucht werden. Wie allerdings dann foreach Strukturen realisiert werden weiß ich nicht genau (Stichwort 2. bzw 3. Durchlauf), denn da müssen Zwischenergebnisse
abgelegt werden (..das finde ich bei XLST so richtig doof da man keine Zustände für einen Patternzustand speichern kann). Also, noch mal ins Blaue. Ich ..wir benutzen bei unseren Projekten Xalan an der Konsole mit richtig großen XML Dateien ..400 Mbyte. Was ich so sehen kann greift sich das System dabei jede Menge Speicher und ist auch schnell. Man müßte das mal testen wie die einzelnen Implementierungen (DOM, SAX ..) sich gegenüber einzelnen Problemstellungen verhalten (Komplexität, Größe ..etc.). Ich habe keine Ahnung aber vielleicht gibt es ja Benchmarks dafür. Das hilft dir sicherlich nicht weiter. Aber was solls. Bis denne Huck
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
slawaweis Problem mit XSLT (wahrscheinlich ein Bug in Java 6) XML & JSON 16
P XSLT in Java verwenden XML & JSON 7
A XSLT oder Java? / XML-Tools XML & JSON 2
W jaxws jaxb wsdl Java-Klassen generieren und binding.xml verwenden XML & JSON 1
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
T Tags in XML Datei mit Java erstellen XML & JSON 3
E JAXB und java.nio.file.Path XML & JSON 4
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
S Java REST Client + Json XML & JSON 8
L Lässt sich folgendes so oder so ähnlich mit Java und XML umsetzen XML & JSON 3
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
L login - Java IOException jaas.config File or Directory not present XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
J JSON zu Java mit der GSON Google API XML & JSON 0
B JAXB - java.util.Locale does not have a no-arg default constructor XML & JSON 2
E JAVA simple.JSONObject cannot be cast to simple.JSONArray XML & JSON 9
P Einheiten in Java XML & JSON 4
T Visualisierung von XML Dateien in einer Java SwingGui XML & JSON 11
A WSDL und Java XML & JSON 5
A XMLRPC für Java XML & JSON 3
S XML auf Java Klassen Mappen XML & JSON 10
N Java XML schreiben funktioniert nicht XML & JSON 1
B aus xsd Java Klassen generieren XML & JSON 3
MiMa Mehrfachvariablen in Java durch XML XML & JSON 4
Q XML-File als Objekt in Java XML & JSON 6
Q Konvertierung von json zum Java Objekt nach vorgegebenem Schema XML & JSON 3
AMStyles XPATH Befehl SVG Java XML & JSON 2
S Wie aktualisiert man den Java-Kode mit FOP1.0? XML & JSON 1
L XSL: Aufruf Java-class XML & JSON 11
N Java Code aus XML Datei generieren XML & JSON 8
GUI-Programmer java.io.File aus .jar beziehen XML & JSON 6
A Unterschiedliche Datenstruktur XML <-> Java mappen XML & JSON 9
R XSD aus Java Klassen erzeugen?? XML & JSON 2
N xsd pattern in java einlesen XML & JSON 6
M java.lang.RuntimeException: Failed to parse document XML & JSON 4
F SOAP in Java XML & JSON 6
Q Atom/RSS-Feed lesen - per XSD zu Java-Code XML & JSON 4
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
N Google Wetter XML (nur current_condition) auslesen mit Java XML & JSON 15
F Einlesen von JDBC connection in Java von XML XML & JSON 4
D xsd->java mit Eclipse?! oder wie? XML & JSON 27
M Probleme mit XPath bei Java XML & JSON 5
_dp Java XML Parse error: findet end-tags nicht XML & JSON 10
V JAXB schema 2 java XML & JSON 3
S XJC --> Java-Objects compile Problem XML & JSON 4
G Mit JSON Java und C# verbinden XML & JSON 4
K XML Datei in ein Java package „einbinden" XML & JSON 3
H Java - XML - Rekursion - Verwirrung XML & JSON 6
F XML Datei in Java einlesen XML & JSON 4
J XSD > XML > Java XML & JSON 7
F XML mit Java XML & JSON 2
algorismi SVG Datein mit Batik in Java reinladen XML & JSON 3
S Java - Klassen erzeugen aus xsd bzw. wsdl XML & JSON 3
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
Mike90 -xlsx Dateien in Java lesen XML & JSON 3
T StAX / SAX => Wie XML Datenstruktur in Java abbilden? XML & JSON 2
H XML plattformunabhängig/Open Source für Java XML & JSON 4
C Java-Imports bei Jaxb XML & JSON 8
Fadi .classpath(XML) mit Java lesen XML & JSON 2
M Frage zu Erklärung im Online book "Java ist auch eine I XML & JSON 4
M Problem mit FOP in Java Programm XML & JSON 2
H Fop / Java /Fonts XML & JSON 6
H XSL Aufruf via Java mit neuen Fonts XML & JSON 9
T Java Klasse für gegebenes XML erstellen XML & JSON 4
M Xlink in Java-Objekt umwandeln XML & JSON 9
S Jdom+java webstart XML & JSON 4
P Einstieg in XML mit Java XML & JSON 3
G MS-Word Dokument mit Java erstellen XML & JSON 2
N AXIOM mit Java 1.4 XML & JSON 4
J DTD in Java integrieren? XML & JSON 3
L XML Datei in Java angeben Pfad? XML & JSON 3
G Problem mit XML-Schema Validierung mit Java XML & JSON 12
G XML mit JAVA an URL senden (http post) XML & JSON 12
D Java DOM Ausgabe ohne XML header XML & JSON 4
S XML Strings in JAVA einlesen, aber wie? XML & JSON 8
S Java 6 und Xerces-j-2-9 XML & JSON 3
E XML mit java einlesn XML & JSON 2
L mit Java eine HTML-Datei erstellen XML & JSON 3
O OpenDocument-Tabelle mit Java lesen und schreiben XML & JSON 3
G JAVA und DOM XML & JSON 2
P DTD -> Java XML & JSON 4
K xml --> sax --> java objekthierarchie XML & JSON 2
B DTD aus Java erzeugen XML & JSON 2
S JAVA XML Parser der einen String parst XML & JSON 3
K java + xpath -> performanceproblem XML & JSON 9
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
A Kann XML weitere XMLs inkludieren? Oder kann es Java? XML & JSON 5
vogella *Erledigt* XML und Java DOM Tutorial XML & JSON 3
T SOAP mit Java ohne HTTP Server möglich? XML & JSON 3
C HTML-Befehle per Java entfernen XML & JSON 7
W Java und XML - help request XML & JSON 3
M [SOLVED]Ausgabe mit Java XML & JSON 2
P Unterschiede java 1.4 und 1.3 XML & JSON 3
M generate SVG with java XML & JSON 2
G java+xml mit dom4j XML & JSON 4
M Auswertung arithmetischer Ausdrücke mit SAX und Java XML & JSON 7
S XMl Dateien in Java schreiben XML & JSON 4
B XML-Document mit Java erzeugen und zuruecksenden XML & JSON 1
J Beispiel aus Java Magazin 03/2004 gesucht ! XML & JSON 6

Ähnliche Java Themen

Neue Themen


Oben