我正在使用 qxmpp 编写一个小型 XMPP 服务器。现在我想创建一个 QXmppStanza 并使用
将它(就像客户端发送它一样)呈现给服务器和我的插件void QXmppServer::handleElement(const QDomElement &element)
此函数需要 QDomElement 而不是 QXmppStanza。我在 QXmppStanza 及其派生类(除了 parse(...) )中发现的唯一 XML 相关函数是函数
void toXml(QXmlStreamWriter *writer)
我还没有在 qt 中处理 XML 的经验,那么有没有比将 XML 写入字符串/ByteArray 更高效的方法,使用它作为输入来创建一个新的 QDomElement 并返回它的 documentElement?
最佳答案
在做了一些进一步的研究之后,我不得不接受这是不可能的。
如 QDomDocument 文档中所述,我始终需要 QDomDocument 才能使用 QDomElement(和其他节点):
Since elements, text nodes, comments, processing instructions, etc., cannot exist outside the context of a document (...)
QXmlStreamWriter 没有 QDomDocument,所以我真的必须创建一个 QDomDocument(当然,只要我想使用该元素,它就必须存在)然后解析文本 (QDomDocument::setContent)。
关于c++ - 可以从 QXmlStreamWriter 获取 QDomElement 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24362884/