Библиотеки и учебные пособия для XML в Delphi

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

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

Ответ 1

Вы можете начать с рассмотрения компонента 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;

Возьмите его оттуда.

Ответ 2

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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