如何在TinyXML2中将XMLElement转换为字符串

5
在 TinyXml 1 中,可以使用 << 运算符将子元素转换为字符串,例如:
TiXmlElement * pxmlChild = pxmlParent->FirstChildElement( "child" );
std::stringstream ss;
ss << (*pxmlChild);

这在TinyXml2中似乎不可能。如何将元素转换为TinyXml2中的xml字符串?
编辑:具体来说,我需要的是xml,例如如果xml是:
<parent>
    <child>
        <value>abc</value>
    </child>
<parent>

我希望获得子元素的xml,例如:

<child>
    <value>abc</value>
</child>
3个回答

9
似乎Print已经不存在了,但Accept同样可用。
XMLPrinter printer;
pxmlChild->Accept( &printer );
ss << printer.CStr();

3

来自TinyXml2社区:

(子节点)的打印是在一个实用函数中完成的:

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

2
看起来这个解决方案已经不存在了-不知道为什么。请参见我的问题:http://stackoverflow.com/questions/27726049/extracting-sub-tree-xml-string-with-tinyxml2 - Jim Clay

0
    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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接