【问题标题】:IOS Getting an XML file from resources to treat it in c++IOS 从资源中获取 XML 文件以在 c++ 中处理它
【发布时间】:2013-09-20 15:10:50
【问题描述】:

我正在做一个需要解析 XML 文件以获取一些属性的 c++ 程序。 (编辑:我正在做一个 iOS 应用程序 --> 这可能是件好事)

编辑:它是一个 plist 文件(我不知道它是否改变了什么)

(我正在使用 Libxml2)。我通过

获得了文件的路径
    NSString* path = [[NSBundle mainBundle] pathForResource:@"env-cfg" ofType:@"plist"];
    std::string* ret_path = new std::string([path UTF8String]);
    return ret_path;

当我尝试打印文件的内容时,我没有 XML 文件了。它给我打印了这样的东西

    bplist00\321[environment\241\324 .... etc

我需要的是用我的 c++ 代码解析它的原始 XML 文件。我知道我可以很容易地从 Obj-c 中的文件中获取数据,但我真的很想在 c++ 中制作这部分。有谁知道有没有办法解析那个 XML 文件? (不使用 Obj-c)

我不知道我是否清楚

[编辑]:我已将 Xcode 中的文件类型更改为 XML 文件。当我打印它时,我不再有奇怪的输出了,就像在 cmets 中所说的那样,它是一个二进制文件(不知道为什么在运行项目时它必须改变)但无论如何,如果有人知道它是否是,我仍然很感兴趣可以从 C++ 中获取二进制形式的 xml 文件,或者是否有办法解析二进制文件

非常感谢!

【问题讨论】:

  • 是二进制plist吗?
  • 它是一个二进制 plist吗?去命令行看看file这个命令是怎么想的。
  • 何对不起,我不知道它们是不同类型的 plist,不,它不应该是二进制 plist。但是我得到编译后,它变成了一个,也许?有没有什么函数可以把它转换回xml文件?
  • 似乎当我把它作为一个普通的 xml 文件放在 Xcode 中时,它可以工作,我可以解析它。我的问题已经解决了,但我仍然对使用常规信息列表的可能性感兴趣
  • 文件的 XML 版本是“常规”plist 文件。

标签: c++ ios objective-c xml xml-parsing


【解决方案1】:

看起来.plist 文件是二进制格式。在命令行使用此命令将其转换为 XML:

$ plutil -convert xml1 env-cfg.plist

【讨论】:

  • 是的,我也这么认为,但我在编译后解析它,它最初是一个 info plist XML
  • 非常感谢您的回答
  • 真的没有理由在这个网站上回答问题。我受够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 1970-01-01
相关资源
最近更新 更多