1

qxmpp を使用して小さな XMPP サーバーを作成しています。ここで、QXmppStanza を作成し、それを (クライアントが送信したかのように) サーバーとプラグインに提示したいと考えています。

void QXmppServer::handleElement(const QDomElement &element)

この関数には、QXmppStanza ではなく QDomElement が必要です。QXmppStanza とその派生クラス ( parse(...) を除く) で見つけた唯一の XML 関連関数は関数です。

void toXml(QXmlStreamWriter *writer)

私はまだ qt で XML を処理した経験がないので、XML を文字列/ByteArray に書き込み、それを入力として使用して新しい QDomElement を作成し、その documentElement を返すよりもパフォーマンスの高い方法はありますか?

4

2 に答える 2

0

さらに調査を行った後、私はそれが不可能であることを認めなければなりません。

QDomDocument のドキュメントに記載されているように、QDomElement (およびその他のノード) を操作するには、常に QDomDocument が必要です。

要素、テキスト ノード、コメント、処理命令などは、ドキュメントのコンテキスト外には存在できないため (...)

QXmlStreamWriter には QDomDocument がないため、実際に QDomDocument を作成し (もちろん、この要素を操作したい限り存続する必要があります)、テキストを解析する必要があります (QDomDocument::setContent)。

于 2014-07-02T12:06:12.217 に答える