Tinyxml2 корневой набор атрибутов

Я пытался установить атрибут для корня в документе XML, используя tinyxml2.

В 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. У меня есть следующий код:

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 SetText или же SetValue или же SetAttribute,

Я тяжело искал ответ в Интернете, но не смог его найти.

Спасибо

ура

1 ответ

Решение

Попробуйте изменить свою линию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).

Другие вопросы по тегам