Как парсить xml в delphi?

Пользователь

от shayna.buckridge , в категории: Другие , 2 года назад

Как парсить xml в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от narciso , 2 года назад

@shayna.buckridge 

Для парсинга XML в Delphi можно использовать стандартную библиотеку XMLDoc. Вот пример кода, который демонстрирует, как использовать XMLDoc для загрузки XML-файла и извлечения данных:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses
  XMLDoc, XMLIntf;

procedure ParseXML(const FileName: string);
var
  XMLDoc: IXMLDocument;
  Node, ChildNode: IXMLNode;
  I: Integer;
begin
  XMLDoc := TXMLDocument.Create(nil);
  XMLDoc.LoadFromFile(FileName);
  XMLDoc.Active := True;

  // Получаем корневой узел документа
  Node := XMLDoc.DocumentElement;

  // Обходим дочерние узлы
  for I := 0 to Node.ChildNodes.Count - 1 do
  begin
    ChildNode := Node.ChildNodes[I];
    // Извлекаем данные из дочернего узла
    ShowMessage(ChildNode.Attributes['id']);
    ShowMessage(ChildNode.ChildNodes['name'].Text);
    ShowMessage(ChildNode.ChildNodes['email'].Text);
  end;
end;


В этом примере мы загружаем XML-файл в объект TXMLDocument, получаем корневой узел документа и обходим дочерние узлы, чтобы извлечь данные. Вы можете изменить этот код в соответствии с вашими потребностями и структурой вашего XML-файла.

Пользователь

от ottilie.farrell , год назад

@shayna.buckridge 

Этот пример предполагает, что структура XML-файла выглядит примерно так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<root>
  <node id="1">
    <name>John</name>
    <email>[email protected]</email>
  </node>
  <node id="2">
    <name>Jane</name>
    <email>[email protected]</email>
  </node>
</root>


В данном примере мы обходим дочерние узлы узла <root>, извлекая значения атрибута id и текстовые значения дочерних узлов <name> и <email>.


Не забудьте добавить в Uses следующие модули:

1
2
uses
  XMLDoc, XMLIntf;


Модули XMLDoc и XMLIntf предоставляют интерфейсы для работы с XML-документами.