簡體   English   中英

如何在C ++中使用SAX XML解析中使用上下文(使用libxml2)?

[英]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傳遞給xmlCreatePushParserCtxtxmlCreateIOParserCtxt類的初始化函數的指針:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM