Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML解析(和验证)C程序的分析_C_Xml_Relaxng - Fatal编程技术网

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

XML解析(和验证)C程序的分析,c,xml,relaxng,C,Xml,Relaxng,多亏了堆栈溢出处的jmbr,我终于找到了通过C程序针对RELAXNG验证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

多亏了堆栈溢出处的jmbr,我终于找到了通过C程序针对RELAXNG验证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文件作为输入所花费的时间总是最高的。最好的情况是,花费的时间总是最低的。我真的被这件事难住了。如果你们中有人能帮我的话,我会非常感激的。

要测试你的代码,你应该制定不同的测试计划和测试用例。。 在这种情况下,请尝试不同的xml输入文件

1个文件谁嵌套了这么多次

任何丢失的标记xml文件都不是有效的xml文件

没有doctype或标记的xml文件的编码不同


&对于处理时间计算,请使用time.h

非常感谢您,32先生。我正在按照你的建议做——从互联网上拿出一些xml文件并进行实验。再次非常感谢。