[英]how to use contexts in SAX XML parsing in C++(using libxml2)?
我正在使用libxml2庫在C ++中編寫xml解析器應用程序。 我使用startElementNsSAX2Func解析元素,並使用characterSAXFunc解析元素值。
簽名:
void startElementNsSAX2Func (void * ctx, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI, int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, int nb_defaulted, const xmlChar ** attributes)
void charactersSAXFunc(void * ctx, const xmlChar * ch, int len)
我想利用ctx變量,以便我可以根據元素的順序來解析xml文檔,但是我不確定該怎么做。 關於此的任何見解將非常有幫助。
我也找不到關於C / C ++中XML SAX解析的好文章。 有人知道這方面的好教程嗎?
謝謝你的幫助!
SAX回調的ctx
參數將保存作為user_data
傳遞給xmlCreatePushParserCtxt
或xmlCreateIOParserCtxt
類的初始化函數的指針:
xmlParserCtxtPtr xmlCreatePushParserCtxt (xmlSAXHandlerPtr sax,
void * user_data,
const char * chunk,
int size,
const char * filename)
它可以用於將指針傳遞給任意用戶定義的結構。 該結構通常將包含狀態變量,該狀態變量可用於確定文檔樹中的當前位置。
一個很好的教程可以在這里找到 。 它使用已棄用的SAX1接口,但SAX2接口相似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.