Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
xmlnewfile.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_xml
3 /// \notebook -nodraw
4 /// Example to create a new xml file with the TXMLEngine class
5 ///
6 /// \macro_code
7 ///
8 /// \author Sergey Linev
9 
10 #include "TXMLEngine.h"
11 
12 void xmlnewfile(const char* filename = "example.xml")
13 {
14  // First create engine
15  TXMLEngine xml;
16 
17  // Create main node of document tree
18  XMLNodePointer_t mainnode = xml.NewChild(0, 0, "main");
19 
20  // Simple child node with content inside
21  xml.NewChild(mainnode, 0, "child1", "Content of child1 node");
22 
23  // Other child node with attributes
24  XMLNodePointer_t child2 = xml.NewChild(mainnode, 0, "child2");
25  xml.NewAttr(child2, 0, "attr1","value1");
26  xml.NewAttr(child2, 0, "attr2","value2");
27 
28  // Child node with subnodes
29  XMLNodePointer_t child3 = xml.NewChild(mainnode, 0, "child3");
30  xml.NewChild(child3, 0, "subchild1", "subchild1 content");
31  xml.NewChild(child3, 0, "subchild2", "subchild2 content");
32  xml.NewChild(child3, 0, "subchild3", "subchild3 content");
33 
34  // Child node with subnodes and namespace
35  XMLNodePointer_t child4 = xml.NewChild(mainnode, 0, "child4");
36  XMLNsPointer_t ns4 = xml.NewNS(child4, "http://website/webpage");
37  xml.NewChild(child4, ns4, "subchild1", "subchild1 content");
38  xml.NewChild(child4, ns4, "subchild2", "subchild2 content");
39  xml.NewChild(child4, ns4, "subchild3", "subchild3 content");
40 
41  // now create document and assign main node of document
42  XMLDocPointer_t xmldoc = xml.NewDoc();
43  xml.DocSetRootElement(xmldoc, mainnode);
44 
45  // Save document to file
46  xml.SaveDoc(xmldoc, filename);
47 
48  // Release memory before exit
49  xml.FreeDoc(xmldoc);
50 }