[英]How to validate an XML using inline DTD using libxml2 (SAX parser)?
我正在使用libxml庫在C ++中編寫XML解析器,這需要我針對內聯指定的DTD驗證XML。 我不想在程序中使用system()。 否則,我本可以使用xmllint命令。
我遇到了在http://xmlsoft.org/ API頁面中指定的xmlValidateDtd(xmlValidCtxtPtr ctxt,xmlDocPtr doc,xmlDtdPtr dtd)函數。 但是我覺得它是基於DOM的功能,因為在SAX解析中沒有xmlDocPtr。
還有其他方法可以根據內聯DTD驗證XML文檔嗎?
通常,您只需提供XML_PARSE_DTDVALID
解析器選項,因此在解析文檔時將對其進行驗證。
如果文檔已經被未經驗證地解析,則可以使用xmlValidateDocument
:
int xmlValidateDocument (xmlValidCtxtPtr ctxt,
xmlDocPtr doc)
嘗試驗證文檔實例,基本上它會執行XML Rec描述的所有檢查,即驗證內部和外部子集(如果存在)並驗證文檔樹。
ctxt:
驗證上下文
doc:
文檔實例
Returns:
如果有效則Returns:
1,否則Returns:
0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.