From d648473c16ac3fe5ce4f4b79c188b9bade381425 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 20 Apr 2012 14:56:33 +0000 Subject: hide an internal method --- src/server/QXmppServer.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/server/QXmppServer.cpp') diff --git a/src/server/QXmppServer.cpp b/src/server/QXmppServer.cpp index 529cb910..02fbd402 100644 --- a/src/server/QXmppServer.cpp +++ b/src/server/QXmppServer.cpp @@ -41,6 +41,36 @@ #include "QXmppServerPlugin.h" #include "QXmppUtils.h" +static void helperToXmlAddDomElement(QXmlStreamWriter* stream, const QDomElement& element, const QStringList &omitNamespaces) +{ + stream->writeStartElement(element.tagName()); + + /* attributes */ + QString xmlns = element.namespaceURI(); + if (!xmlns.isEmpty() && !omitNamespaces.contains(xmlns)) + stream->writeAttribute("xmlns", xmlns); + QDomNamedNodeMap attrs = element.attributes(); + for (int i = 0; i < attrs.size(); i++) + { + QDomAttr attr = attrs.item(i).toAttr(); + stream->writeAttribute(attr.name(), attr.value()); + } + + /* children */ + QDomNode childNode = element.firstChild(); + while (!childNode.isNull()) + { + if (childNode.isElement()) + { + helperToXmlAddDomElement(stream, childNode.toElement(), QStringList() << xmlns); + } else if (childNode.isText()) { + stream->writeCharacters(childNode.toText().data()); + } + childNode = childNode.nextSibling(); + } + stream->writeEndElement(); +} + class QXmppServerPrivate { public: -- cgit v1.2.3