【问题标题】:XML parsing in C++ [duplicate]C ++中的XML解析[重复]
【发布时间】:2012-04-14 06:03:54
【问题描述】:

我可以用来做一些简单的 XML 读/写的最佳 API 是什么?我正在使用 Visual Studio。我可以在 STD 库中使用标准的吗?我需要它的软件可能已经出售并且不能开源,所以它必须有一个灵活的许可证才能用于商业用途。

编辑:我没有将它用于任何 SOAP、协议或数据绑定的东西,我只是用它来存储信息,几乎可以替代数据库(因为在这种情况下它会更有效)。

【问题讨论】:

标签: c++ xml


【解决方案1】:

据我所知,没有标准库可以读取 XML。

我发现 TinyXML 是一个方便的库。还有now a TinyXML 2没用过。

【讨论】:

    【解决方案2】:

    我爱pugixml。它速度快、重量轻、非常容易使用并嵌入到项目中(我在几个工作中都使用过它,它只有大约 3 个文件),最重要的是,它支持 XPath 1.0(这真棒)。

    编辑:不,标准库中没有。

    Edit 编辑:关于 pugixml 的许可:它是在 MIT 许可下分发的,这几乎是你能得到的许可。

    【讨论】:

    • 是的,但 pugixml 不是 XML data binding tool。我不喜欢低级 XML 编码,因为它很容易搞砸。您最终可能不得不编写更多代码来存储/检索 XML 数据和检查/转换内容。
    • @Alex:当然,如果您正在执行大量复杂的 XML 解析,那么更重的解析器可能会更好。但是 OP 要求一个简单的 XML 解析器来进行一些简单的序列化。在这个问题的上下文中,一个带有 XML 数据绑定的大型库是多余的(特别是因为我严重怀疑 OP 有一个 WSDL/XSD 来生成数据绑定)。对于 OP 来说,使用像 gSOAP 这样的东西会过于复杂。
    【解决方案3】:

    我会推荐GSOAP。我知道公司在他们销售的产品中使用它,因此许可不应该成为问题。它具有架构验证等功能......

    【讨论】:

    • 太好了,我去看看。
    【解决方案4】:

    Microsoft 提供了一个名为 XmlLite 的 XML 库。

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms752838%28v=vs.85%29.aspx

    【讨论】:

    • 这看起来很酷,你知道这里的许可吗?谢谢。
    • 不确定,但我们在我们的产品中使用它,因此它不会受到限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 2012-04-09
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多