[英]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等?
謝謝 !
您可能需要使用xmlCreatePushParserCtxt和xmlParseChunk的推式解析器。 更好的選擇是為XMPP選擇現有的開源C庫之一 。 例如, 這是libstrophe的代碼,可以完成您想要的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.