What is the best open XML parser for C++? -
this question has answer here:
- what xml parser should use in c++? 5 answers
i looking simple, clean, correct xml parser use in c++ project. should write own?
how rapidxml? rapidxml fast , small xml dom parser written in c++. aimed @ embedded environments, computer games, or other applications available memory or cpu processing power comes @ premium. rapidxml licensed under boost software license , source code freely available.
features
- parsing speed (including dom tree building) approaching speed of strlen function executed on same data.
- on modern cpu (as of 2008) parser throughput 1 billion characters per second. see performance section in online manual.
- small memory footprint of code , created dom trees.
- a headers-only implementation, simplifying integration process.
- simple license allows use purpose, both commercial , non-commercial, without obligations.
- supports utf-8 , partially utf-16, utf-32 encodings.
- portable source code no dependencies other small subset of c++ standard library.
- this subset small can emulated manually if use of standard library undesired.
limitations
- the parser ignores doctype declarations.
- there no support xml namespaces.
- the parser not check character validity.
- the interface of parser not conform dom specification.
- the parser not check attribute uniqueness.
source: wikipedia.org://rapidxml
depending on use, may use xml data binding? codesynthesis xsd xml data binding compiler c++ developed code synthesis , dual-licensed under gnu gpl , proprietary license. given xml instance specification (xml schema), generates c++ classes represent given vocabulary parsing , serialization code.
one of unique features of codesynthesis xsd support 2 different xml schema c++ mappings: in-memory c++/tree , stream-oriented c++/parser. c++/tree mapping traditional mapping tree-like, in-memory data structure. c++/parser new, sax-like mapping represents information stored in xml instance documents hierarchy of vocabulary-specific parsing events. in comparison c++/tree, c++/parser mapping allows 1 handle large xml documents not fit in memory, perform stream-oriented processing, or use existing in-memory representation.
Comments
Post a Comment