How to convert an XMLElement to string in TinyXML2

10k Views Asked by At

In TinyXml 1 it was possible to convert a child element to a string using the << operator, e.g.

TiXmlElement * pxmlChild = pxmlParent->FirstChildElement( "child" );
std::stringstream ss;
ss << (*pxmlChild);

This doesn't appear possible in TinyXml2. How do you convert an element to an xml string in TinyXml2?

Edit: Specifically I'm after the xml, e.g. if the xml was:

<parent>
    <child>
        <value>abc</value>
    </child>
<parent>

I want the xml for the child element, e.g.

<child>
    <value>abc</value>
</child>
3

There are 3 best solutions below

1
On BEST ANSWER

From the TinyXml2 community:

Printing (of a sub-node) is in a utility function:

XMLPrinter printer;
pxmlChild->Print( &printer );
ss << printer.CStr();
0
On

Seems like Print isn't there any more but Accept works just as well:

XMLPrinter printer;
pxmlChild->Accept( &printer );
ss << printer.CStr();
0
On
    TiXmlElement *assertion; // you can add some elements when you test
    TiXmlPrinter printer;
    assertion->Accept( &printer );
    std::string stringBuffer = printer.CStr();
    cout<<stringBuffer.c_str()<<endl;