Index: /trunk/include/iprt/cpp/xml.h
===================================================================
--- /trunk/include/iprt/cpp/xml.h	(revision 79807)
+++ /trunk/include/iprt/cpp/xml.h	(revision 79808)
@@ -504,5 +504,6 @@
                                        ///< NULL if this is a content node
 
-    /** Child list entry of this node. (List head m_pParent->m_children.) */
+    /** Child list entry of this node. (List head m_pParent->m_children or
+     *  m_pParent->m_attribute depending on the type.) */
     RTLISTNODE      m_listEntry;
     /** Pointer to the parent list anchor.
@@ -775,4 +776,22 @@
     /** @} */
 
+    /** @name Attribute enumeration
+     * @{ */
+
+    /** Get the first attribute node.
+     * @returns Pointer to the first child node, NULL if no attributes. */
+    const AttributeNode *getFirstAttribute() const
+    {
+        return RTListGetFirstCpp(&m_attributes, const AttributeNode, m_listEntry);
+    }
+
+    /** Get the last attribute node.
+     * @returns Pointer to the last child node, NULL if no attributes. */
+    const AttributeNode *getLastAttribute() const
+    {
+        return RTListGetLastCpp(&m_attributes, const AttributeNode, m_listEntry);
+    }
+
+    /** @} */
 
     const AttributeNode *findAttribute(const char *pcszMatch, const char *pcszNamespace = NULL) const;
