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.
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.
If you want something super simple and intuitive I recommend GitHub - JuliaCloud/XMLDict.jl: XMLDict implements a simple Associative interface for XML documents.
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.
I made some comparisons within my package to see the differences. The results are shown here. My intermediate observations are:
- LightXML is faster to compile.
- EzXML consumes less memory.
- 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.