是否可以针对ANSI C中的Relax NG模式验证xml文件?我遇到过这个名为libxml2的库,但是我可以从中获得的所有帮助都是关于如何解析xml文件的.请帮忙.
如果可以做到,步骤是什么?完全不了解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);
}
Run Code Online (Sandbox Code Playgroud)
用gcc -I/usr/include/libxml2 rngval.c -o rngval -lxml2编译
您可以访问http://xmlsoft.org/html/libxml-relaxng.html查看相关文档
| 归档时间: |
|
| 查看次数: |
775 次 |
| 最近记录: |