tinyxml2を使用してXML文書のルート属性を設定しようとしています。 tinyxmlでTinyxml2ルート設定属性
、次のコード
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);
生成します:私はp_root->SetText();
、p_root->SetValue();
またはSetAttribute
を書く場合
<ROOT>
<CHILD>Message</CHILD>
</ROOT>
は今、すべてがclass tinyxml2::XMLNode has no member named SetText
またはSetValue
またはSetAttribute
というエラーを与える私は、次のコードを持っています。
私はオンラインで回答を見つけるのは難しいですが、見つけられませんでした。
乾杯
私はルートが常にXMLNodeでなければならないと考えましたが、ちょっと混乱しました。ありがとう。 – Keivan
私が紛らわしいのは、XMLのルートが常にtinyxml2のノードとみなされるということです。したがって、この問題はXMLを解析する際にも発生します。最初の子を取得するには、それを 'XMLNode'に渡す必要があります。あなたはそれをどうやって解決しますか? – Keivan
XMLNodeは[抽象クラス](https://en.wikibooks.org/wiki/C%2B%2B_Programming/Classes/Abstract_Classes)です。つまり、すべてのXMLNodeは派生クラスの1つでなければなりません。特定のXMLNodeがどの派生クラス(例えば 'ToElement()'、 'ToDocument()'など)を発見するためのキャストメソッドが組み込まれています。また、あなたの質問に答えた場合は、そのようにマークしてください。 – dquam