【问题标题】:libxml for C++: How to add a root node to XML tree?C++ 的 libxml:如何将根节点添加到 XML 树?
【发布时间】:2009-07-24 06:58:37
【问题描述】:

我有一个如下所示的 xml 文件

<siteinfo>
...
</siteinfo>
<page>
   <title>...</title>
   <revision>
   ...
   <revision>
</page>

它没有根/封闭节点,所以我在运行程序时得到“文档末尾的额外内容”。使用 libxml 打开文件进行解析后,有没有办法轻松地将这个根/封闭节点添加到解析树中?

【问题讨论】:

  • 是否可以更改 XML 编写器?我认为让它符合 XML 会更好。

标签: c++ xml parsing libxml2


【解决方案1】:

如果您无法更改源 XML 的结构,更简单的方法是创建如下字符串:

string xml = string("<root>") + file_contents + string("</root>");

然后你就可以轻松解析这个字符串了。顺便说一句,由于您使用的是 C++,因此您应该尝试一下 libxml++。它是 libxml 的 C++ 包装器,非常好。

【讨论】:

  • 谢谢。那么可以解析字符串而不是文件吗?如果是这样,你的答案正是我需要的:-)
  • libxml++ 可以,所以很明显libxml 应该可以,这是基础库。
  • 谢谢!我以为我在使用 libxml++。显然不是。我不得不安装这么多包,我迷路了。将坚持使用 libxml2,直到我发现 libxml++ 更容易;-)。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多