我有一個TCP連接,通過流向我發送XML消息。通過流解析不完整XML消息的最有效方法是什麼?
我在<?xml version="1.0" encoding="utf-8"?>
消息中收到的第一條消息。
第二個是身份驗證請求消息,它提供了一個種子,用於散列我的憑據以發送回服務器 - <session seed="VJAWKBJXJO">
。
在這一點上,我應該發回一個<session user="admin" password_hash="123456789">
消息來驗證自己。
一旦通過身份驗證,我將以<Msg>data</Msg>
的形式收到所需的數據。
如果我沒有及時與服務器進行身份驗證,我收到一條消息</session>
,表明會話已關閉。
問題是我不能使用DOM解析器,因爲試圖解析沒有結束標籤的<session>
標籤總是會拋出錯誤,所以我試圖使用Xerces-c SAX解析器來執行漸進式解析的XML。
當我收到每封郵件時,我想理想地將它附加到包含當前已收到的所有XML的MemBufInputSource
,然後在緩衝區上執行parseNext
以分析已收到的新XML,但無法弄清楚如何讓它正常工作。
有沒有更好的解決此問題的方法?也許只是使用<session></session>
消息的特例?
謝謝
當我試圖解析''消息時,當它找不到' '結束標記時,我當前的實現一直在持續下降 –
2012-03-20 14:00:34