LightXML vs EzXML

I have started playing with LightXML and EzXML.
I found EzXML to be easier to use and better documented than LightXML. I am still struggling to do some basic stuff wiyh LightXML. I wanted to have the view of the community on which package I should use with regards to long term solution and maintainability.
Thank you

1 Like

I like EzXML, though it hasn’t received much maintenance in a while. However, the EzXML repository was recently transferred to the JuliaIO Github group, so it should be easier to make updates for anyone who is interested in contributing.


I have no insights about the relative merits since I’ve never used EzXML but if you use LightXML you must be careful with memory management of XML objects. Cf Use a finalizer instead of manual memory management · Issue #93 · JuliaIO/LightXML.jl · GitHub.

1 Like

If you want something super simple and intuitive I recommend GitHub - JuliaCloud/XMLDict.jl: XMLDict implements a simple Associative interface for XML documents.

1 Like

Seems XMLDict.jl is build on top of EzXML. For me, usually, the less dependencies the better…

I think actually XMLDict makes you less dependent, than directly using EzXML. Because it is only 300loc and defines a very nice interface, with an EzXML backend that could easily be switched. If one directly depends on EzXML and that package disappears for some reason, I expect a greater pain.

I usually use both: EzXML to read and extract (it includes XPath paths) and LightXML to generate (because there is a bug with EzXML for adjacent text nodes, and my skills are too limited to fix it myself).

For XSL transformations, I use a third party executable.

1 Like

I made some comparisons within my package to see the differences. The results are shown here. My intermediate observations are:

  1. LightXML is faster to compile.
  2. EzXML consumes less memory.
  3. EzXML is slightly faster in my small test, but slightly slower in my pkg benchmarks.

I need to look at my codes more carefully but so far I don’t see a big advantage by using either one except the memory deallocation issue mentioned above.

1 Like