Как получить значение атрибута и отобразить его на Tmemo
У меня есть XML-файл, который выглядит следующим образом...
<fruits>
<apple color="red"/>
<orange color="orange"/>
<banana color="yellow"/>
</fruits>
Я хотел бы взять значение атрибута color для каждого элемента и отобразить его в заметке. Я знаю, как отобразить значение элемента в заметке, но не могу понять, как это сделать для атрибута. Вот мой код пока...
TiXmlDocument XMLFile;
XMLFile.LoadFile("fruits.xml");
TiXmlHandle XMLFileHandle( &XMLFile );
TiXmlElement* root = XMLFile .FirstChildElement("fruits");
for(TiXmlElement* elem = root->FirstChildElement(); elem != NULL; elem = elem->NextSiblingElement())
{
memoOverview->Lines->Add(elem->Attribute("val")->GetText());
}
Я использую tinyxml для разбора файла xml, и я делаю это в C++ и C++ Builder.
2 ответа
Решение
TiXmlDocument XMLFile;
XMLFile.LoadFile("fruits.xml");
TiXmlHandle XMLFileHandle( &XMLFile );
TiXmlElement* root = XMLFile.FirstChildElement("fruits");
char stringBuffer[64];
for (TiXmlElement* elem = root->FirstChildElement(); elem != NULL; elem = elem->NextSiblingElement())
{
if (strcmp(LastChildElement->Value(), "color") == 0)
{
strncpy(stringBuffer, LastChildElement->Attribute("color"), sizeof(stringBuffer));
}
memoOverview->Lines->Add( stringBuffer );
}
Согласно документации, вам необходимо заменить elem->Attribute("val")->GetText()
с elem->Attribute("color")
:
memoOverview->Lines->Add(elem->Attribute("color"));