簡體   English   中英

用libxml2解析XMPP流

[英]parsing an XMPP stream with libxml2

關於libxml2我是一個初學者,所以這是我的問題:我正在一個小型XMPP客戶端上工作。 我有一個從網絡接收的流,接收到的緩沖區隨着接收到的數據逐塊地饋送到我的Parser類中。 我可能會收到不完整的XML數據片段:

<stream><presence from='user1@dom

在下一次從套接字讀取時,我應該得到其余的信息:

ain.com to='hatter@wonderland.lit/'/>

在這種情況下,解析器應報告錯誤。

我只對深度為0和深度為1的元素感興趣,例如上面的示例中的流和存在。 我需要解析這種流,並為每個元素(深度0或1)創建一個xmlNodePtr(我有代表流的類,它們是將xmlNodePtr作為輸入的狀態元素)。 因此,這意味着我必須只能從像這樣的開始元素創建xmlNodePtr,因為只有在通信結束時才接收關聯的結束元素(在這種情況下)。

我想使用拉式解析器。

在這種情況下使用的最佳功能是什么? xmlReaderForIO,XmlReaderForMemory等?

謝謝 !

您可能需要使用xmlCreatePushParserCtxtxmlParseChunk的推式解析器。 更好的選擇是為XMPP選擇現有的開源C庫之一 例如, libstrophe的代碼,可以完成您想要的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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