【问题标题】:Effectively merging files with libxml2 SAX API使用 libxml2 SAX API 有效地合并文件
【发布时间】:2011-10-21 19:57:40
【问题描述】:

我正在尝试将几个文件与 libxml2 SAX 合并。原始文件如下所示:

<xml>
   <section1>
       <data />
       <data />
   </section1>
   <section2>
       <data />
       <data />
   </section2>
   <section3>
       <data />
       <data />
   </section3>
</xml>

我想要做的是将不同文件中相同部分的数据放在适当部分的一个大文件中。我所做的是读取第一个文件 section1 并立即写入合并文件 section1。然后我对我做的其他文件做同样的事情。之后我转到第 2 部分。

它工作得很好,除了我必须阅读所有文件的次数与我有多少节一样多。我想知道的是我是否可以在通过 section1 后暂停读取 file1 并在所有其他文件中读取 section1 后继续读取。

【问题讨论】:

    标签: c++ libxml2


    【解决方案1】:

    我认为这是不可能的。您可以在原始文件的回调中的任意时间开始二次解析,但我认为您不能在不完全完成或中止第二次解析的情况下停止二次解析(返回到原始解析)。

    我强烈建议您查看xmlReader 界面。它不是由回调驱动的,您可以反复调用xmlTextReaderRead 来推进它,并且您可以随时在读者之间切换。你一定能得到你想要的行为。

    示例可在 http://xmlsoft.org/examples/index.html#xmlReader

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 2012-10-19
      • 2016-02-08
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 2016-09-16
      • 2022-07-05
      相关资源
      最近更新 更多