在Linux和Windows上使用C或C ++parsingXML的常见分母XML库是什么?

我想在C和C ++应用程序中parsing一些XML。 这个应用程序被部署到Windows和Linux。 什么是可能在许多Linux发行版上安装的XML库,在Windows上可用?

从我的Linux发行版样本中,libxml2似乎是相当常见的,但有没有更常见的XML库?

Xerces和Expat也很常见。

我不认为你会发现任何可能预装在这两个系统。 正如你所说,libxml2在Linux上无处不在,而在Windows上无处不在。

你可能会自己至少安装一个东西。

尽管如果你只是想与你的应用程序一起发货,libxml2是非常便携的。 该设计实际上基于.NET中的XML API。

  • pugixml < – 可能是最简单的使用,但功能很少。
  • rapidxml < – 比pugixml更快但功能更丰富。
  • Xerces < – “标准”XML解析器的分类 – 几乎支持所有的XML标准,可以解析/强制执行DTD等等。
  • TinyXML < – 慢,功能不丰富。 但是小巧易用。

Qt在跨平台开发方面相当出色。如果您不介意额外的库(libqt4-core),我建议您使用Qt的xml模块.DOM或SAX将完成工作。

如果你想要一个普通的( SAX式的,基于流的)解析器,那么答案肯定是Expat 。

但是您提到了libxml2,那么您可能对解析器生成的(方便的)文档对象模型感兴趣(反之亦然:创建DOM并将其写入XML文件以及类似的用法)。

要获得一个易于使用的跨平台库,请尝试使用TinyXML 。 这个库很小,只是做这个工作,通过提供面向实践的接口(与DOM标准相似,但并不完全相似),可以用于许多XML解析目的。

其他类似但不完全重复的问题:

  • 一个轻量级的XML解析器有效的大型文件?
  • 如何在C ++中解析XML(Win32)
  • 什么是最常用的C ++ XML库?
  • C ++中面向流的XML解析的替代方法