]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/xml/xml.h
added template wxScopedArray<> too
[wxWidgets.git] / interface / wx / xml / xml.h
index 794fdb882374e218e9c4aa736466544bfc0f20b0..c3491b4f9287963775d9e58fb7a631a98279fa32 100644 (file)
@@ -34,9 +34,11 @@ enum wxXmlNodeType
     Node has a name and may have content and attributes.
 
     Most common node types are @c wxXML_TEXT_NODE (name and attributes are irrelevant)
-    and @c wxXML_ELEMENT_NODE (e.g. in @c \<title\>hi\</title\> there is an element
-    with name="title", irrelevant content and one child @c wxXML_TEXT_NODE
-    with content="hi").
+    and @c wxXML_ELEMENT_NODE.
+
+    Example: in <tt>\<title\>hi\</title\></tt> there is an element with the name
+    @c title and irrelevant content and one child of type @c wxXML_TEXT_NODE
+    with @c hi as content.
 
     If @c wxUSE_UNICODE is 0, all strings are encoded in the encoding given to
     wxXmlDocument::Load (default is UTF-8).
@@ -107,18 +109,18 @@ public:
     /**
         The virtual destructor. Deletes attached children and attributes.
     */
-    ~wxXmlNode();
+    virtual ~wxXmlNode();
 
     /**
         Appends a attribute with given @a name and @a value to the list of
         attributes for this node.
     */
-    void AddAttribute(const wxString& name, const wxString& value);
+    virtual void AddAttribute(const wxString& name, const wxString& value);
 
     /**
         Appends given attribute to the list of attributes for this node.
     */
-    void AddAttribute(wxXmlAttribute* attr);
+    virtual void AddAttribute(wxXmlAttribute* attr);
 
     /**
         Adds node @a child as the last child of this node.
@@ -132,13 +134,13 @@ public:
 
         @see InsertChild(), InsertChildAfter()
     */
-    void AddChild(wxXmlNode* child);
+    virtual void AddChild(wxXmlNode* child);
 
     /**
         Removes the first attributes which has the given @a name from the list of
         attributes for this node.
     */
-    bool DeleteAttribute(const wxString& name);
+    virtual bool DeleteAttribute(const wxString& name);
 
     /**
         Returns true if a attribute named attrName could be found.
@@ -170,7 +172,7 @@ public:
         Be aware that for nodes of type @c wxXML_ELEMENT_NODE (the most used node type)
         the content is an empty string. See GetNodeContent() for more details.
     */
-    wxString GetContent() const;
+    const wxString& GetContent() const;
 
     /**
         Returns the number of nodes which separe this node from @c grandparent.
@@ -191,7 +193,7 @@ public:
         Can be an empty string (e.g. for nodes of type @c wxXML_TEXT_NODE or
         @c wxXML_CDATA_SECTION_NODE).
     */
-    wxString GetName() const;
+    const wxString& GetName() const;
 
     /**
         Returns a pointer to the sibling of this node or @NULL if there are no
@@ -254,7 +256,7 @@ public:
 
         @see AddChild(), InsertChildAfter()
     */
-    bool InsertChild(wxXmlNode* child, wxXmlNode* followingNode);
+    virtual bool InsertChild(wxXmlNode* child, wxXmlNode* followingNode);
 
     /**
         Inserts the @a child node immediately after @a precedingNode in the
@@ -263,6 +265,8 @@ public:
         @return @true if @a precedingNode has been found and the @a child
                 node has been inserted.
 
+        @param child
+            The child to insert.
         @param precedingNode
             The node to insert @a child after. As a special case, this can be
             @NULL if this node has no children yet -- in that case, @a child
@@ -272,7 +276,7 @@ public:
 
         @see InsertChild(), AddChild()
     */
-    bool InsertChildAfter(wxXmlNode* child, wxXmlNode* precedingNode);
+    virtual bool InsertChildAfter(wxXmlNode* child, wxXmlNode* precedingNode);
 
     /**
         Returns @true if the content of this node is a string containing only
@@ -292,7 +296,7 @@ public:
         Note that the caller is reponsible for deleting the removed node in order
         to avoid memory leaks.
     */
-    bool RemoveChild(wxXmlNode* child);
+    virtual bool RemoveChild(wxXmlNode* child);
 
     /**
         Sets as first attribute the given wxXmlAttribute object.
@@ -351,8 +355,8 @@ public:
 
     Represents a node attribute.
 
-    Example: in @c "\<img src="hello.gif" id="3"/\>", @c "src" is attribute with value
-    @c "hello.gif" and @c "id" is a attribute with value @c "3".
+    Example: in <tt>\<img src="hello.gif" id="3"/\></tt>, @c src is an attribute
+    with value @c hello.gif and @c id is an attribute with value @c 3.
 
     @library{wxxml}
     @category{xml}
@@ -377,7 +381,7 @@ public:
     /**
         The virtual destructor.
     */
-    ~wxXmlAttribute();
+    virtual ~wxXmlAttribute();
 
     /**
         Returns the name of this attribute.
@@ -424,39 +428,37 @@ public:
 
     @code
     wxXmlDocument doc;
-    if (!doc.Load(wxT("myfile.xml")))
-        return @false;
+    if (!doc.Load("myfile.xml"))
+        return false;
 
     // start processing the XML file
-    if (doc.GetRoot()-GetName() != wxT("myroot-node"))
-        return @false;
+    if (doc.GetRoot()->GetName() != "myroot-node")
+        return false;
 
-    wxXmlNode *child = doc.GetRoot()-GetChildren();
+    wxXmlNode *child = doc.GetRoot()->GetChildren();
     while (child) {
 
-        if (child-GetName() == wxT("tag1")) {
+        if (child->GetName() == "tag1") {
 
             // process text enclosed by tag1/tag1
-            wxString content = child-GetNodeContent();
+            wxString content = child->GetNodeContent();
 
             ...
 
             // process attributes of tag1
             wxString attrvalue1 =
-                child-GetAttribute(wxT("attr1"),
-                                  wxT("default-value"));
+                child->GetAttribute("attr1", "default-value");
             wxString attrvalue2 =
-                child-GetAttribute(wxT("attr2"),
-                                  wxT("default-value"));
+                child->GetAttribute("attr2", "default-value");
 
             ...
 
-        } else if (child-GetName() == wxT("tag2")) {
+        } else if (child->GetName() == "tag2") {
 
             // process tag2 ...
         }
 
-        child = child-GetNext();
+        child = child->GetNext();
     }
     @endcode
 
@@ -466,10 +468,10 @@ public:
 
     @code
     wxXmlDocument doc;
-    doc.Load(wxT("myfile.xml"), wxT("UTF-8"), wxXMLDOC_KEEP_WHITESPACE_NODES);
+    doc.Load("myfile.xml", "UTF-8", wxXMLDOC_KEEP_WHITESPACE_NODES);
 
     // myfile2.xml will be indentic to myfile.xml saving it this way:
-    doc.Save(wxT("myfile2.xml"), wxXML_NO_INDENTATION);
+    doc.Save("myfile2.xml", wxXML_NO_INDENTATION);
     @endcode
 
     Using default parameters, you will get a reformatted document which in general
@@ -477,8 +479,8 @@ public:
 
     @code
     wxXmlDocument doc;
-    doc.Load(wxT("myfile.xml"));
-    doc.Save(wxT("myfile2.xml"));  // myfile2.xml != myfile.xml
+    doc.Load("myfile.xml");
+    doc.Save("myfile2.xml");  // myfile2.xml != myfile.xml
     @endcode
 
     @library{wxxml}
@@ -503,18 +505,18 @@ public:
         Loads the given filename using the given encoding. See Load().
     */
     wxXmlDocument(const wxString& filename,
-                  const wxString& encoding = wxT("UTF-8"));
+                  const wxString& encoding = "UTF-8"));
 
     /**
         Loads the XML document from given stream using the given encoding. See Load().
     */
     wxXmlDocument(wxInputStream& stream,
-                  const wxString& encoding = wxT("UTF-8"));
+                  const wxString& encoding = "UTF-8");
 
     /**
         Virtual destructor. Frees the document root node.
     */
-    ~wxXmlDocument();
+    virtual ~wxXmlDocument();
 
     /**
         Detaches the document root node and returns it.
@@ -541,7 +543,7 @@ public:
         @note This is the encoding original file was saved in, @b not the
               encoding of in-memory representation!
     */
-    wxString GetFileEncoding() const;
+    const wxString& GetFileEncoding() const;
 
     /**
         Returns the root node of the document.
@@ -555,7 +557,7 @@ public:
         If the version attribute was not explicitely given in the header, this function
         returns an empty string.
     */
-    wxString GetVersion() const;
+    const wxString& GetVersion() const;
 
     /**
         Returns @true if the document has been loaded successfully.
@@ -577,14 +579,14 @@ public:
         Returns true on success, false otherwise.
     */
     virtual bool Load(const wxString& filename,
-                      const wxString& encoding = wxT("UTF-8"), int flags = wxXMLDOC_NONE);
+                      const wxString& encoding = "UTF-8", int flags = wxXMLDOC_NONE);
 
     /**
         Like Load(const wxString&, const wxString&, int) but takes the data from
         given input stream.
     */
     virtual bool Load(wxInputStream& stream,
-                      const wxString& encoding = wxT("UTF-8"), int flags = wxXMLDOC_NONE);
+                      const wxString& encoding = "UTF-8", int flags = wxXMLDOC_NONE);
 
     /**
         Saves XML tree creating a file named with given string.