aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppElement.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-02-12 09:21:28 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-02-12 09:21:28 +0000
commit5a764007436eac8416a2d567bbc5e0a56ffc4240 (patch)
tree4d3ebf51d9e57ecd29f1228cb07dc728f5e8432d /source/QXmppElement.cpp
parent6c1eb5edcf0b301d2b30c9a649a23fc79148f5e6 (diff)
downloadqxmpp-5a764007436eac8416a2d567bbc5e0a56ffc4240.tar.gz
add support for nest QXmppElements
Diffstat (limited to 'source/QXmppElement.cpp')
-rw-r--r--source/QXmppElement.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/source/QXmppElement.cpp b/source/QXmppElement.cpp
index 21571417..7dac43e6 100644
--- a/source/QXmppElement.cpp
+++ b/source/QXmppElement.cpp
@@ -39,6 +39,18 @@ QXmppElement::QXmppElement(const QDomElement &element)
QDomAttr attr = attributes.item(i).toAttr();
m_attributes.insert(attr.name(), attr.value());
}
+
+ QDomElement childElement = element.firstChildElement();
+ while (!childElement.isNull())
+ {
+ m_children.append(QXmppElement(childElement));
+ childElement = childElement.nextSiblingElement();
+ }
+}
+
+QStringList QXmppElement::attributeNames() const
+{
+ return m_attributes.keys();
}
QString QXmppElement::attribute(const QString &name) const
@@ -51,6 +63,16 @@ void QXmppElement::setAttribute(const QString &name, const QString &value)
m_attributes.insert(name, value);
}
+QList<QXmppElement> QXmppElement::children() const
+{
+ return m_children;
+}
+
+void QXmppElement::setChildren(QList<QXmppElement> &children)
+{
+ m_children = children;
+}
+
QString QXmppElement::tagName() const
{
return m_tagName;
@@ -66,6 +88,8 @@ void QXmppElement::toXml(QXmlStreamWriter *writer) const
writer->writeStartElement(m_tagName);
foreach (const QString &attr, m_attributes.keys())
helperToXmlAddAttribute(writer, attr, m_attributes.value(attr));
+ foreach (const QXmppElement &child, m_children)
+ child.toXml(writer);
writer->writeEndElement();
}