我有一个 TCP 连接,它通过流向我发送 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 的渐进式解析。
当我收到每条消息时,我希望理想地将其附加到MemBufInputSource
包含当前已收到的所有 XML 的 a 中,然后parseNext
在缓冲区上执行 a 以解析已收到的新 XML,但我不知道如何获取它正常工作。
有没有更好的方法来解决这个问题?也许只是对消息使用特殊情况<session></session>
?
谢谢