Axel Wei� a �crit :
Tristan Mehamli wrote:
Hi,
I want to create a DOM tree in order to generate an XML file with
DOMWriter.
This is the an example of the document I want to generate:
<?xml version="1.0" Encoding="UTF-8" ?>
<!-- A comment-->
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="myschema.xsd">
<tag1>
<tag2>its value</tag2>
<tag3 atName="value" atName="value"></tag3>
<tag4>
<tag5>
<tag6>its value</tag6>
</tag5>
</tag4>
</tag1>
</root>
Can someone give me an example of code to generate a DOM tree that
describes this document?
Hi Tristan,
you first generate an empty document with
DOMImplementation::createDocument(). Subsequently you fill the root
element with children, according to your needs. Finally, you write out
the result DOMDocument with DOMWriter::writeToString().
Read the docs! http://xml.apache.org/xerces-c/apiDocs/index.html is a
good starting point.
Is there a way to generate a DOM tree from an XML schema and just fill
its nodes?
No.
Hope it helps,
Axel
Hi Axel,
Thanks for your answer. In fact I managed to do something by my own (may
be not really efficient). Here is the code for those who are interested:
DOMImplementation* impl =
DOMImplementationRegistry::getDOMImplementation(X("Core"));
DOMDocument* doc = impl->createDocument(
0, // root element namespace URI.
XStr("root"), // root element name
0); // document type object (DTD).
doc->setEncoding(XStr("UTF-8"));
doc->setVersion(XStr("1.0"));
DOMElement* rootElem = doc->getDocumentElement();
rootElem->setAttribute(XStr("xmlns:xsi"),
XStr("http://www.w3.org/2001/XMLSchema-instance"));
rootElem->setAttribute(XStr("xsi:noNamespaceSchemaLocation"),
XStr("aSchema.xsd"));
DOMElement* tag1 = doc->createElement(XStr("tag1"));
rootElem->appendChild(tag1);
DOMElement* tag2 = doc->createElement(XStr("tag2"));
tag1->appendChild(tag2 );
tag2->setAttribute(XStr("index"),XStr("0"));
DOMText* tag2Val = doc->createTextNode(XStr("VALUE"));
tag2->appendChild(tag2Val );
Yet I have one more question. Where can I find a description of the
features that can be set when I create a new document (I took a look at
the documentation but I probably missed something)?