【问题标题】:Reading an OpenOffice file in C/C++在 C/C++ 中读取 OpenOffice 文件
【发布时间】:2013-03-19 13:50:03
【问题描述】:

我很好奇如何使用我的编译器打开 OpenOffice 文档。我知道我可能可以将其转换为文本文件或 rtf,但我想知道是否可以直接从 .odt 读取。我想要做的只是像 .txt 文件那样逐行读取。任何想法都会很好,如果有帮助,我正在使用 DevC。

【问题讨论】:

  • .odt 文件是包含 XML 文件的目录的压缩档案。首先尝试unzip 一些.odt 文件以了解其中包含的内容...
  • 编译器不会那样做。您是在尝试编写一个读取 OO 文件的程序,还是希望您的编译器编译您在 .odt 中编写的代码?

标签: c++ c openoffice.org dev-c++


【解决方案1】:

According to Wikipedia.odt 文件只是一个标准的 ZIP 存档,包含以下内容:

  • XML 文件:
    • content.xml
    • meta.xml
    • settings.xml
    • styles.xml
  • 其他文件
    • 模仿类型
    • 目录
    • META-INF/
      • manifest.xml
    • 缩略图/
      • 缩略图.png

Content.xml 将包含文件的内容(有关其他文件的信息,请参阅上面的Wikipedia link)。您可以使用任何 XML 库来解析该 XML 文件(和其他文件)以读取数据。您的程序需要做的就是解压缩 .odt 文件,然后将要解析的任何 XML 文件传递​​给 XML 库。

this StackOverflow answer 中提到了您可以使用的 XML 库示例。

对于解压缩 .odt 文件,您有一些不错的选择:

【讨论】:

    【解决方案2】:

    必须是 C/C++ 吗? Linux Journal 写了一篇关于用 Python 解析 ODT 文件的文章。

    http://www.linuxjournal.com/article/9347

    这个想法是一样的,只是不同的库来完成繁重的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2018-07-04
      相关资源
      最近更新 更多