Библиотеки и руководства по XML в Delphi

Я планирую добавить поддержку XML в приложение, но я не знаком с программированием XML в Delphi. В основном мне нужно создавать объекты на основе узлов XML и генерировать файл XML на основе объектов.

Какую библиотеку компонентов XML мне следует использовать? Есть ли хорошие учебники по XML с Delphi?

см. stackoverflow stackoverflow.com/questions/1535143/…

Charles Faiga 10.10.2009 12:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
21
1
13 295
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Вы можете попробовать следующую книгу: Руководство разработчика Delphi по XML

В основном я бы рекомендовал вам использовать Microsoft DOM. Вам нужно будет импортировать библиотеку, как и любой другой COM-объект.

Есть ли какая-то особая причина использовать Microsoft DOM?

Harriv 05.11.2008 15:51

Я считаю, что это довольно просто понять. SAX - это другой вариант (не единственный вариант, который я могу добавить).

Steve 06.11.2008 02:25

Вы можете использовать Delphi Привязка данных XML (File - New - Other - XML ​​Mapping (я точно не знаю путь, я дома без Delphi)).

Он создает объекты / интерфейсы через поставщика XML, поэтому вы можете работать с объектами / структурами вместо простого текстового файла xml.

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

Это создает XML-файл преобразования xtr, который необходимо включить в исполняемый файл. Это делает XML набор данных, который проще, но менее гибок (он хорошо работает только с простым XML)

Osama Al-Maadeed 18.12.2008 19:00

Вот пара руководств:

Кроме того, вы можете захотеть заглянуть в Модуль XMLIntf (хотя на этой связанной странице Delphi Wikia очень мало содержания).

Ответ принят как подходящий

Вы можете начать с изучения компонента Delphi TXMLDocument. Это даст вам основы работы с XML / DOM. Это просто и может быть добавлено, перетащив его в форму. Он имеет методы LoadFromFile и SaveToFile и по нему легко перемещаться.

Однако в какой-то момент вы исчерпаете возможности TXMLDocument, особенно если вы хотите работать с такими вещами, как XPath.

Я предлагаю вам взглянуть на IXMLDOMDocument2, который является частью MSXML2_TLB, например.

  XML := CreateOleObject('MSXML2.DOMDocument.3.0') as IXMLDOMDocument2;
  XML.async := false;
  XML.SetProperty('SelectionLanguage','XPath');

Вам нужно будет добавить msxmldom, xmldom, XMLIntf, XMLDoc и MSXML2_TLB в раздел использования.

Есть несколько библиотек компонентов, но я бы посоветовал написать свой собственный вспомогательный класс или функции. Вот пример того, что мы написали и использовали:

function XMLCreateRoot(var xml: IXMLDOMDocument2; RootName: string; xsl: string = ''; encoding: string = 'ISO-8859-1'; language: string = 'XPath'): IXMLDOMNode;
var
  NewPI:   IXMLDOMProcessingInstruction;
begin

  if language<>'' then
     xml.SetProperty('SelectionLanguage','XPath');

  if encoding<>'' then begin
     NewPI:=xml.createProcessingInstruction('xml', 'version = "1.0" encoding = "'+encoding+'"');
     xml.appendChild(NewPI);
  end;

  if xsl<>'' then begin
     NewPI:=xml.createProcessingInstruction('xml-stylesheet','type = "text/xsl" href = "'+xsl+'"');
     xml.appendChild(NewPI)
  end;

  xml.async := false;
  xml.documentElement:=xml.createElement(RootName);
  Result:=xml.documentElement;
end;

Возьми это оттуда.

Я использую nativeXML от simdesign. Работа с XML избавит вас от лишних хлопот, и вы начнете работать за считанные минуты.

NativeXML теперь имеет открытый исходный код и поддерживает Delphi до 2010 г.

mjn 08.04.2011 10:38

Похоже, что версия с открытым исходным кодом теперь поддерживает Delphi XE.

Phil Gilmore 06.07.2011 23:09

Я работаю с nativeXML около года. Мои потребности довольно просты. Свободное владение XML - это небольшая часть более крупного приложения для меня, но я смог реализовать нужные мне части почти так же быстро, как я могу их кодировать, онлайн-справка хороша, и мои потребности были удовлетворены за день, а не за неделю или дольше. Я второй голос davehay за nativeXML.

Мне нужно проверить nativelXML, звучит хорошо. Есть ли минусы?

Harriv 06.11.2008 10:31

Другие вопросы по теме