#include "tinyXml/tinyxml.h"
const char MY_XML[] = "<?xml version='1.0' standalone=no><main> <ToDo time='1'> <Item priority='1'> Go to the <bold>Toy store!</bold></Item> <Item priority='2'> Do bills</Item> </ToDo> <ToDo time='2'> <Item priority='1'> Go to the Second<bold>Toy store!</bold></Item> </ToDo></main>";
void main()
{
TiXmlDocument doc;
TiXmlHandle docHandle(&doc);
const char * const the_xml = MY_XML;
doc.Parse(MY_XML);
TiXmlElement* xElement = NULL;
xElement = docHandle.FirstChild("main").FirstChild("ToDo").ToElement();
int element_time = -1;
while(xElement)
{
if(xElement->QueryIntAttribute("time", (int*)&element_time) != TIXML_SUCCESS)
throw;
xElement = xElement->NextSiblingElement();
}
}
Вот как это работает.Скомпилировано и протестировано.
Как вы можете видеть, ваши попытки сделать его более безопасным кодом стоили вам с исключительностью на третьей строке (вопрос), и без тестирования я могу поспорить, что это «указание на ноль»исключение.
Просто загрузите его в моем стиле, как сказано в документации TinyXml: "docHandle.FirstChild (" main "). FirstChild (" ToDo "). ToElement ();".
Надеюсь, это поможет вам понять, дайте мне знать, если это не ясно.Я принимаю визу (: