我正在使用 libxml 库在 C++ 中编写 XML 解析器,该库要求我根据内联指定的 DTD 验证 XML。我不想在我的程序中使用 system() 。否则我可以使用 xmllint 命令。
我遇到了http://xmlsoft.org/ API 页面中指定的xmlValidateDtd(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlDtdPtr dtd)函数。但我觉得它是基于 DOM 的函数,因为在 SAX 解析中没有 xmlDocPtr。
是否有任何其他方法可以根据内联 DTD 验证 XML 文档?