C++、いくつかのコンパクトなオープンソースxmlライブラリ


私はただ場所を探してマークしただけで,後で忘れてしまった.
 
1、CMarkup
これは半開源としか言えない.ネット上でダウンロードできるCMarkupソースコードのほとんどは、CMarkup有料版の去勢バージョンです.もちろん、無料版は基本的な読書ニーズを満たすことができ、書くニーズには満足できません.
私は無料版だけをコメントします.
CMarkupはEDOMモデルを採用しており,フォールトトレランスがよい.ルートノードが1つ以上ある「不正なxmlドキュメント」(xmlドキュメントルートノードが1つしかない)を読むことができます.たとえば、次のドキュメントではCMarkupが処理できます.
aaa
bbb

CMarkupは「進式のみ」です.私から見れば、CMarkup無料版の利点は、読み取り効率が良いことです.もちろん、ユーザーのエラーの確率を増やすことを代価としています.また、上記のドキュメントを例にとると、CMarkup::FindElem("B")後、CMarkup::FindElem("A")では見つからず、CMarkup::Reset後にしか見つからない.
CMarkupはIntoElem,OutOfElemを提供してナビゲーションし,親,子ノード間でユーザを切り替えることができるが,もしユーザがOutOfElemを忘れたら?もしそうなら、間違いは不幸にも発生します.
CMarkupの無料版でもノードのプロパティは削除できません.また、新しいノードを追加するときに半分の確率でエラーが発生します.つまり、ルートノードからxmlドキュメントを再生成するか、既存のxmlドキュメントにノードを追加しないでください.
私の提案は、xmlを読んでCMarkupを使って、xmlを書いて敬遠することです.
 
2、TinyXml,TinyXml2
DOMモデルを採用
ただし、TinyXml 2はTinyXmlのアップグレード版ではなく、2つは異なるxmlライブラリです.TinyXml 2はTinyXmlと同根であるが、TinyXml 2はより高速で効率的である(これはTinyXmlの一部の機能を犠牲にする代わりに)
TinyXmlまたはTinyXml 2を使用すると、TiXmlDocumentインスタンスのリソース解放に注意するだけで、他のリソースTiXmlDocumentが管理に代わります.
複数のルートノードのxmlドキュメント解析はサポートされていません.広い文字列のxmlドキュメント解析はサポートされていません.つまり、TinyXmlまたはTinyXml 2を使用するには、いつでもwchar_tとchar切り替えの心構え.
 
3、pugiXml
DOMモデルを採用
興味のある検索可能pugxml(pugixmlではありません)
pugiXmlは、CMarkupと同様に、複数のルートノードのxmlドキュメントを解析できます.
pugiXmlは、PUGIXML_を開く限り、広い文字列をサポートします.WCHAR_MODEマクロでいいです.また、pugiXmlはネーミングスペースを使用しているので、xmlライブラリを2つ、charをサポートし、wchar_をサポートするのに便利です.t
pugiXmlのインタフェースの設計も人間的で、簡潔で、効率的で、文生義を望んでいます.
素晴らしいことに、pugiXmlはXPathもサポートしています.Arseny Kapoulkineに改めて感謝します.
 
4、rapidxml
使ったことがないので、マークしてください.
wchar_をサポートしているそうですt、速度が速くて、インタフェースはtinyXmlと似ています