Re: Element creation
- From: Kjell Ahlstedt <kjell ahlstedt bredband net>
- To: Jayashree <jaya risktechnologysolutions com>
- Cc: libxmlplusplus-list gnome org
- Subject: Re: Element creation
- Date: Wed, 13 Jun 2012 20:18:25 +0200
You just need to delete the document. The document's destructor deletes
all the nodes in the document.
The description of xmlpp::Node says: "You should never new or delete
Nodes. The Parser will create and manage them for you." But actually
it's the Document that deletes the nodes, even it the document has not
been created by a parser.
Kjell
2012-06-13 18:40, Jayashree skrev:
Kjell,
Thanks for your response. It works fine using the import_node.
I have another question. Does the document object deletes the memory
for all the child nodes, when it goes of our scope or do i need to keep
track of all the node pointers and delete it by myself?
regards,
Jaya
On 06/13/2012 03:57 AM, Kjell Ahlstedt wrote:
Elements and other nodes are supposed to belong to a document. I
don't know if you can create "free-floating" elements, but even if
it's possible, it's probably not a good idea.
My recommendation is that you let getAllNodes() build a document that
contains the elements you want. It shall return xmlpp::Document*.
Then use xmlpp::Node::import_node() to copy the elements to where you
want them.
The example program
http://git.gnome.org/browse/libxml++/tree/examples/import_node shows
how to use import_node(),
and http://git.gnome.org/browse/libxml++/tree/examples/dom_build
shows how to build a document from scratch. The document it builds
contains a lot of stuff that you won't need in your document.
Kjell
2012-06-12 22:58, Jayashree skrev:
Hi,
I need to create a xml document and save it to a file.
I create the xml using the below code.
xmlpp::Document doc;
xmlpp::Element* pRootEle = doc.create_root_node("root");
xmlpp::Element* pNode = pRootEle->add_child("node1");
pNode->add_child_text("node1 data");
But i need to create a list of Elements in a function and directly
add it
as a child to the root node. some thing like below.
list<Element *> eleList = getAllNodes();
foreach(Element ele in eleList)
{
pRootEle -> add_child(ele);
}
How can i achieve it. I don't want to pass the rootnode to the
function.
regards,
Jaya
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]