gpt4 book ai didi

c - 在 ANSI C 中针对 relax ng 验证 xml

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:40 24 4
gpt4 key购买 nike

是否可以根据 ANSI C 中的 Relax NG 模式验证 xml 文件?我遇到过这个名为 libxml2 的库,但我能从中获得的所有帮助都是关于如何解析 xml 文件的。请帮忙。

如果可以,步骤是什么?完全不知道这个w.r.t。 C环境。

最佳答案

这是一个简单的示例(您当然应该添加自己的错误检查):

 #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);
}

用 gcc -I/usr/include/libxml2 rngval.c -o rngval -lxml2 编译

您可以在http://xmlsoft.org/html/libxml-relaxng.html查看相关文档

关于c - 在 ANSI C 中针对 relax ng 验证 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com