Как получить значение атрибута и отобразить его на Tmemo - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть 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 ]

0 голосов
/ 27 февраля 2012
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 );
}
0 голосов
/ 25 февраля 2012

Согласно документации необходимо заменить elem->Attribute("val")->GetText() на elem->Attribute("color"):

memoOverview->Lines->Add(elem->Attribute("color"));
...