Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2013, 17:34   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
Вопрос XML.Document > взять значения соотв нодов?

Всем Привет,

есть xml документ:
Код:
<?xml version="1.0" encoding="utf-8" ?>
<DATA>
 <SECTION ID="534">
  <INFO>
   <NODE NAME="Dates" VALUE="518c0" TYPE="DWORD" />
   <NODE NAME="Status" VALUE="8" TYPE="DWORD" />
   <NODE NAME="Types" VALUE="24" TYPE="STRING" />
  </INFO>
 </SECTION>
</DATA>
Как прочитать значения данных нодов: Dates, Status, Types?

Dates: 518c0
Status: 8
Types: 24

Пишу так:
Код:
EditDate.Text := (XMLDocument.DocumentElement.ChildNodes['DATA'].Attributes['Dates']);  // не работает
XerSon вне форума Ответить с цитированием
Старый 03.03.2013, 17:53   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

получаешь список нодов

XMLNodeList list = XMLDocument.DocumentElelemnt.Select Nodes('//node[@name]/@value');

дальше в цикле раскручиваешь список, смотришь на поле Nodevalue
Rififi вне форума Ответить с цитированием
Старый 03.03.2013, 18:41   #3
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
получаешь список нодов

XMLNodeList list = XMLDocument.DocumentElelemnt.Select Nodes('//node[@name]/@value');

дальше в цикле раскручиваешь список, смотришь на поле Nodevalue
Знал бы как, раскрутил бы. Можно на примере объяснить?
XerSon вне форума Ответить с цитированием
Старый 03.03.2013, 19:29   #4
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Код:
var
  i: Integer;
  InfoNode: IXMLNode;
begin
  XMLDocument1.LoadFromXML(Memo1.Text);
  if XMLDocument1.IsEmptyDoc then
    raise Exception.Create('XML is Empty');
  // определяемся с тем что надо найти
  // ищем узел INFO
  InfoNode := XMLDocument1.DocumentElement.ChildNodes.FindNode('INFO');
  if Assigned(InfoNode) then
    // раз нашли - пробегаемся по всем дочерним узлам
    for i := 0 to InfoNode.ChildNodes.Count - 1 do
    begin
      // нашли узел - выводим значения > Edit's
      Edit1.Text := InfoNode.ChildNodes[i].ChildValues['Dates'];
      Edit2.Text := InfoNode.ChildNodes[i].ChildValues['Status'];
      Edit3.Text := InfoNode.ChildNodes[i].ChildValues['Types'];
    end;
end;
Не чего не выводит.
Что делаю не так?

Последний раз редактировалось XerSon; 03.03.2013 в 22:21.
XerSon вне форума Ответить с цитированием
Старый 04.03.2013, 10:58   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Вот так не пойдёт?
Код:
var
  i : integer;
  s : array [0..2] of string;
begin
  XMLDocument1.Active := true;
  XMLDocument1.LoadFromXML (Memo1.Text);
  for I := 0 to XMLDocument1.DocumentElement.ChildNodes['SECTION'].ChildNodes['INFO'].ChildNodes.Count - 1 do
    begin
      s[i] := VarToStr(XMLDocument1.DocumentElement.ChildNodes['SECTION'].ChildNodes['INFO'].ChildNodes[i].Attributes['VALUE']);
    end;

  Edit1.Text := s[0];
  Edit2.Text := s[1];
  Edit3.Text := s[2];
  XMLDocument1.Active := false;
end;
FaTaL вне форума Ответить с цитированием
Старый 04.03.2013, 12:45   #6
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
По умолчанию

Все ок, Спасибо!
XerSon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание значения с XML Sekoka C# (си шарп) 2 22.08.2012 13:13
how can i create xml document from xsd sxhema orter PHP 1 04.10.2010 20:03
XMLDocument: сопоставление тегов и нодов Gonzo Работа с сетью в Delphi 1 01.10.2010 16:32
Автоматическая подстановка соотв. значения в соседнюю ячейку? chandrasecar Microsoft Office Excel 5 28.06.2010 02:01