【问题标题】:Reading Configuration xml files in C++在 C++ 中读取配置 xml 文件
【发布时间】:2011-01-26 08:37:53
【问题描述】:

如何在 C++ 中读取以下配置文件。 STL中是否有任何支持。我负担不起使用其他 3rd 方库的费用。

<?xml version="1.0" encoding="utf-8"?> 
<appSettings>
    <add key="FileType" value="doc"/>  
    <add key="FileLength" value="102234"/>   
</appSettings>

我没有使用托管 C++。

【问题讨论】:

  • “我负担不起使用其他 3rd 方库”
  • 您无需支付任何图书馆费用。所有这些都是免费的。
  • 对于我们这些以编码为生的人来说恰恰相反:我们不能使用第三方库。
  • 我曾在许多不允许在其产品中包含任何第三方代码的地方工作过。有时,他们只是想让你自己酿造,或者聪明地从哪里偷来。

标签: c++ xml


【解决方案1】:

我建议在这种情况下使用TinyXML。它是一个非常非常小的 XML 阅读器,足够复杂,可以正确解析引用的 XML 文档。它只是两个或三个 C++ 源文件,您可以直接编译到您的应用程序中。除了标准库和STL之外,它没有任何外部依赖。

【讨论】:

  • 非常感谢您推荐 TinyXml。我在我的一个作业项目中使用过它。
【解决方案2】:

STL 不支持解析 xml。如果您决定不使用第三方库,那么您唯一的其他选择就是手动编写解析器,这似乎是一个非常糟糕的主意。为什么你不能使用第三方库?

【讨论】:

  • 嗯,这是一个学术项目,禁止使用第三方库:-(
  • @iJeeves - 然后编写你自己的解析器。查看库并开始非常小心地复制代码。
  • 我明白了,如果我是你,我会上诉,因为这是使用第三方插件的好习惯。另一方面。这个配置文件有多复杂?如果您给出的示例是实际的配置文件,那么 xml 有点矫枉过正。你可以很容易地做出一些事情来做到这一点。
  • @DumbCoder 考虑到它是一个明显受严格抄袭规则约束的学术项目,这是一个非常棒的建议。
  • 这听起来更像是小组作业/项目,而不是随后出版的真正学术项目,因为人们确实有比重写 XML 解析器更好的事情要做。
【解决方案3】:

这是来自 StackOverflow 上类似主题的链接
Using Boost to read and write XML files 其中也推荐了像 Frerich Raabe 推荐的 Tiny。

【讨论】:

  • Boost 是一个第三方库,所以你的回答对 OP 帮助不大。
  • @darioo:我认为 Boost 是一个 2nd 方库,因为它非常非常接近 C++.. 事实上如此接近以至于它的许多技术都包含在 C++0x 中。 :D
猜你喜欢
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多