0

昨天我可以用 C 语言编写的程序解析 XML 文件,使用函数 doc = xmlParseFile(fname);.

现在,它返回 NULL(在下一行被捕获,返回错误)。该程序已经一个多月没有改变了,XML 文件自上周以来没有改变,libxml2 自 25.3.2012 以来没有改变。xmllint 毫无问题地遍历文件,我可以在另一台计算机上解析它们(Solaris,使用相同的源代码,但不同的编译器和库)。那我还应该检查什么?这听起来类似于这个线程,虽然我想避免那个hacky解决方案http://ubuntuforums.org/showthread.php?t=1402824(还没有尝试过)

C 程序实际上是一个从 MatLab 调用的 mex 函数,但这应该没什么区别,对吧?我在 GNU/Linux 上运行它。

4

1 回答 1

1

尝试这个:

  FILE *f = fopen("~/myxml.log", "a");
  xmlSetGenericErrorFunc(f, NULL);
  doc = xmlParseFile(fname);
  fclose(f);

并查看日志文件中的结果。

于 2012-05-03T12:14:49.513 回答