XML Parser for C
Two of the most widely used parsers are Expat and libxml.
If you are okay with using C++, there's Xerces-C++ too.
What's the most commonly used XML library for C++?
I would recommend not using XML.
I know this is a matter of opinion but XML really clutters the information with a lot of tags. Also, even though it is human-readable, the clutter actually hampers readability (and I say it from experience since we have some 134 XML configuration files at the moment...). Furthermore, it is quite difficult to read because of the mix between attributes and plain-text. You never know which one you are going to need.
I would recommend using JSON, if you want a language that already has well-defined parsers.
For parsing, a simple look at json.org and you have a long list of C++ libraries.
A simple C XML parser
Mini-XML looks promising
http://www.minixml.org/
Parsing XML in Pure C
The canonical XML parsing library for C is libxml2.
Best XML parser for C
One of the most widely used is libxml2. You can take a look here.
which is the most efficient XML Parser for C++?
If you use SAX parsing, your bottleneck is the I/O involved, not the XML string processing. And given your 500 MB number, I'd say you'd have to do SAX parsing instead of DOM parsing. So, anything with a SAX type interface should be just fine.
Related Topics
What Is a "Span" and When Should I Use One
Why C++11 In-Class Initializer Cannot Use Parentheses
When Should I Use the New Keyword in C++
Which Kind of Pointer Do I Use When
Using Generic Std::Function Objects With Member Functions in One Class
How to See a C/C++ Source File After Preprocessing in Visual Studio
How Does Dereferencing of a Function Pointer Happen
Subclass/Inherit Standard Containers
What Is the Easiest Way to Initialize a Std::Vector With Hardcoded Elements
Purpose of Unions in C and C++
Singleton: How Should It Be Used
How to Expand a Tuple into Variadic Template Function'S Arguments
Why Do I Get "Unresolved External Symbol" Errors When Using Templates
What Is a Reference Variable in C++
Initialization of All Elements of an Array to One Default Value in C++