Tinyxml2 root setattribute

时间:2016-05-03 14:10:13

标签: c++ xml tinyxml tinyxml2

我一直在尝试使用tinyxml2为XML文档中的根设置属性。

在tinyxml中,以下代码

TiXmlDocument doc;

TiXmlElement * root = new TiXmlElement( "ROOT" );


root->SetAttribute("msg","ImFree");
doc.LinkEndChild( root );

TiXmlElement * element = new TiXmlElement( "CHILD" );
TiXmlText * text = new TiXmlText( "Message" );
element->LinkEndChild( text );
root->LinkEndChild( element );


doc.SaveFile( "foo.xml" );

生成以下xml文件:

<ROOT msg="ImFree">
    <CHILD>Message</CHILD> 
</ROOT>

但是我仍然不知道如何在tinyxml2中设置root的属性。我有以下代码:

tinyxml2::XMLDocument xml_doc;

tinyxml2::XMLNode * p_root = xml_doc.NewElement("ROOT");
xml_doc.InsertFirstChild(p_root);


tinyxml2::XMLElement * p_element = xml_doc.NewElement("CHILD");
p_element->SetText("Message");
p_root->InsertEndChild(p_element);

生成:

<ROOT>
    <CHILD>Message</CHILD>
</ROOT>

现在,如果我写p_root->SetText();p_root->SetValue();SetAttribute,则所有人都会发出错误class tinyxml2::XMLNode has no member named SetTextSetValueSetAttribute

我努力搜索在线找到答案,但找不到答案。

由于

干杯

1 个答案:

答案 0 :(得分:0)

尝试更改您的线路 tinyxml2::XMLNode * p_root = xml_doc.NewElement("ROOT");tinyxml2::XMLElement * p_root = xml_doc.NewElement("ROOT");。 XMLNode没有SetAttribute方法,只有XMLElement有(http://www.grinninglizard.com/tinyxml2docs/tinyxml2_8h_source.html)。