分析XML解析(和验证)C程序

时间:2011-08-08 10:39:25

标签: c xml relaxng

感谢Stack Overflow的jmbr,我终于找到了一种通过C程序对RELAX NG验证xml的方法。该计划如下......

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>

#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/relaxng.h>

int main(int argc, char *argv[])
{
   int status;
   xmlDoc *doc;
   xmlRelaxNGPtr schema;
   xmlRelaxNGValidCtxtPtr validctxt;
   xmlRelaxNGParserCtxtPtr rngparser;

   doc = xmlParseFile(argv[1]);

   rngparser = xmlRelaxNGNewParserCtxt(argv[2]);
   schema = xmlRelaxNGParse(rngparser);
   validctxt = xmlRelaxNGNewValidCtxt(schema);

   status = xmlRelaxNGValidateDoc(validctxt, doc);
   printf("status == %d\n", status);

   xmlRelaxNGFree(schema);
   xmlRelaxNGFreeValidCtxt(validctxt);
   xmlRelaxNGFreeParserCtxt(rngparser);
   xmlFreeDoc(doc);
   exit(EXIT_SUCCESS);

}

从那时起,我已经大大调整了程序,以便找出解析和验证xml文件的“处理时间”。有没有办法找出这个程序的最佳案例和最坏情况。最糟糕的情况是,任何xml文件作为输入所花费的时间总是最高的。最好的情况是,所花费的时间总是最低的。我真的很困惑。非常感谢,如果你们中的任何一个人能帮助我的话。

1 个答案:

答案 0 :(得分:-1)

要测试您的代码,您应该制定不同的测试计划&amp;测试用例.. 在这种情况下尝试不同的不同xml输入文件...

1个嵌套这么多次的文件

任何遗漏的标签xml文件(无效的xml文件)

没有doctype或标签的xml文件采用不同的编码

&安培;处理时间计算使用time.h