| 
| 
 | Вопрос # 6 033/ вопрос решён / | 
 |  Здравствуйте, уважаемые эксперты!Вопросик мой про работу с xml c помощью стандартного компонента делфи XMLDocument.
 Имеем xml файл на сервере подобного вида:
 
 
  
<forecast version="1.2" last_updated="Wed, 28 Mar 2012 10:10:35 +0300">
<url>http://www.weather.ua/show/?2086</url>
<city id="2086">
<name>Набережные Челны</name>
<name_en>Nabereznie Chelni</name_en>
<region></region>
<country id="643">
<name>Россия</name>
<name_en>Russia</name_en>
</country>
</city>
<current></current> Перерыл тонны интернета и не нашёл вразумительного ответа как прочитать значение из
 <name>...</name> ну и другие значения.
 Прошу вашей помощи
 
|  |   Вопрос задал: Елагин Сергей (статус: Посетитель)Вопрос отправлен: 28 марта 2012, 11:15
 Состояние вопроса: решён, ответов: 1.
 |  Ответ #1. Отвечает эксперт: DNK Здравствуйте, Елагин Сергей!Не забуть закрыть тег forecast в конце файла, иначе будет ругани. Следующий код добавляет в список строчки "Набережные Челны" и "Россия". Только если файл берется с сервера, нужно вместо файла загружать нужный TStream.
 
 
 procedure TForm1.btn1Click(Sender: TObject);
var
  forecast, city, country, name: IXMLNode;
begin
  xmldcmnt1.LoadFromFile('1.xml');
  xmldcmnt1.Encoding := 'UTF-8';
  forecast := xmldcmnt1.ChildNodes.FindNode('forecast');
  if Assigned(forecast) then begin
    city := forecast.ChildNodes.FindNode('city');
    if Assigned(city) then begin
      name := city.ChildNodes.FindNode('name');
      if Assigned(name) then
        lst1.Items.Add(name.NodeValue);
      country := city.ChildNodes.FindNode('country');
      if Assigned(country) then begin
        name := country.ChildNodes.FindNode('name');
        if Assigned(name) then
          lst1.Items.Add(name.NodeValue);
      end;
    end;
  end;
end;
|  | Ответ отправил: DNK (статус: Студент)Время отправки: 28 марта 2012, 12:14
 Оценка за ответ: 5
 Комментарий к оценке: За помощь с разбором xml файла |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 28 марта 2012, 11:23; участников в обсуждении: 1. 
|   | min@y™ (статус: Доктор наук), 28 марта 2012, 11:23 [#1]:А использование TXMLDocument принципиально? Очень уж он мудрёный, и для таких простых задач в нём много лишнего. Есть вещи попроще и получше. Я, например, уже очень давно юзаю TECXMLParser и бед не знаю. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  4 апреля 2012, 20:51: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |