Как получить значение атрибута и отобразить его на 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"));
Другие вопросы по тегам