Two key factors I noticed when reviewing these products are:
The following tests only measure the time to read and extract the name and value of every xml node and all of its attribute names and values. In my case, I did not need to validate the XML document.
The pseudo code is:
void test() { XmlObject xml; xml.open(filename) load(xml.top()); } void load(XmlNode& node) { // Read all attributes while (node.GetAttribute(name, value)) { node.NextAttribute()) } XmlNode cNode while (node.GetChild(cNode)) { load(cNode); } }
Product | License | Platform/Source | Seconds | Data char or wchar_t |
---|---|---|---|---|
Chilkat | free (I think) | Windows package | wchar_t | |
MSXML3.0 | free | Windows dll | 9.00 | wchar_t |
MSXML6.0 | free | Windows dll | 8.40 | wchar_t |
TinyXML | opensource/free | Source code | 5.90 | char |
XmlParser | opensource/free | Source code | 5.75 | either, timed wchar_t |
CMarkup | Commerical/$250 unlimited use | Windows package | 2.77 | either, timed char |
My own xml reader | Private | 2.00 | char |
Based on my very simple test and narrow testing criteria, I would recommend CMarkup as the best solution, ignoring my own custom reader. CMarkup has a very clean and easy to use interface and is very fast.
Links to product websites:
XML solutions I did not test: