snowdude
snowdude

Reputation: 3874

How to convert an XMLElement to string in TinyXML2

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>

Upvotes: 5

Views: 10470

Answers (3)

Xianggui Wang
Xianggui Wang

Reputation: 1

    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;

Upvotes: 0

Adam Thomson
Adam Thomson

Reputation: 91

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

XMLPrinter printer;
pxmlChild->Accept( &printer );
ss << printer.CStr();

Upvotes: 9

snowdude
snowdude

Reputation: 3874

From the TinyXml2 community:

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

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

Upvotes: 3

Related Questions