First: 2 MB or 17MB aren't especially big XML files. Any decent processor
should handle them easily. 300MB or 400MB files are big.
Second: Most XSLT processors read the XML file into memory before processing
it. The in-memory data representation tends to be 2-5 times as big as the
original file. At some point you will run out of physical memory, and will
need to find another solution that doesn't require reading the entire file
before you process it.
People have talked about XSLT processors that automatically "stream" the XML
input files, but I don't know any that really do that. One possible solution
is to use SAX to read your file, and process the input elements as you see
them. Another thing you might try is breaking your input into multiple files,
and deal with them sequentially (but this scheme only puts off your day of
pain for a little while).
Good luck.
jeff
Dusan Zatkovsky wrote:
On Thursday 30 of September 2004 16:29, Colin Paul Adams wrote:
xsltproc.
I will extend this question.
Does anybody know some other and fast xslt processors written in c/c++
except xalan and xsltproc for linux?
I have this problem:
I want to transform big xml documents to text data.
Situation:
xml size=2MB
XalanC transforms it ok, but speed is 4-5 times slower than xsltproc.
Parsing/transforming time is 1:2. So when I run Xalan, it tooks about
8 sec to initialize and 15 sec to transform.
xsltproc transform it ok with speed 4-5 times faster than XalanC.
Parsing/transforming time is about 1:1 (3 and 4 seconds)
xml size=17MB
XalanC transforms it ok, but speed is 4-5 times slower than xsltproc.
Parsing/transforming times are 20/60 sec.
But xsltproc initialization tooks very long time (after 5 minutes I
have killed that process).
So, I can't use xsltproc to transform big xml files (and our project
need to transform up to 300-400MB xml files) and can't use XalanC
because low transforming speed.
Anybody can help me?
--
-------------------------------------------------------------------------
= Jeff Kenton Consulting and software development =
= http://home.comcast.net/~jeffrey.kenton =
-------------------------------------------------------------------------