Использовать XML из Delphi 7 - PullRequest
       2

Использовать XML из Delphi 7

1 голос
/ 21 августа 2010

Мне нужно получить информацию о книге через службу XML isbndb.com по этой ссылке http://isbndb.com/api/books.xml?access_key=12345678&index1=isbn&value1=9780321635345.

Есть идеи, как это сделать в Delphi?

Ответы [ 2 ]

3 голосов
/ 21 августа 2010

Вам нужен HTTP-клиент (скажем, Indy) и парсер XML. Для синтаксического анализатора XML просто используйте OmniXML , например. Indy входит в Delphi7. Затем просто напишите код, подобный этому:

procedure TForm1.Button1Click(Sender: TObject);
const
  cURL = 'http://isbndb.com/api/books.xml?access_key=12345678&index1=isbn&value1=9780321635345';
var
  HTTPClient: TIdHTTP;
  XMLAsStream: TMemoryStream;
  XMLDocument: IXMLDocument;
begin
  HTTPClient := TIdHTTP.Create(nil);
  try
    XMLAsStream := TMemoryStream;
    try
      HTTPClient.Get(cURL, XMLAsStream);
      XMLAsStream.Position := 0; 

      XMLDocument := CreateXMLDoc;
      XMLDocument.LoadFromStream(XMLAsStream);
    finally
      XMLAsStream.Free;
    end;
  finally
    HTTPClient.Free;
  end;
end;

Теперь ваш XML-документ анализируется как DOM в памяти. Просто используйте его:)

2 голосов
/ 21 августа 2010

Какая версия Delphi 7 у вас есть?

Матрица возможностей Delphi 7 указывает, что если у вас есть Delphi 7 Enterprise или Architect, вы можете использовать встроенный мастер привязки данных XML для создания классов Delphi вокруг вашего XML. Эти классы являются обертками для XML DOM . Они значительно облегчают работу с XML.

См. этот ответ и это видео о том, как использовать мастер привязки данных XML.

Получить XML проще всего с помощью Indy, как упомянуто Runner.

Если у вас Delphi 7 Standard или Professional, у вас нет мастера привязки данных XML, поэтому вам придется анализировать XML с XML DOM.

Обратите внимание, что XML DOM может более или менее охватывать стандартизированный 1020 * Уровень 1, Уровень 2 или Уровень 2.
Ваш XML определяет, какой уровень вам нужен.

Я не совсем уверен, что Delphi 7 Standard and Professional включает XML DOM, но для Delphi 7 доступны различные XML DOM.
Многие используют MSXML DOM (который поддерживает уровень 2 и доступен в большинстве систем Windows, поскольку он включен в Internet Explorer и многие другие части программного обеспечения Microsoft).
XML DOM реализации с открытым исходным кодом - OmniXML (на что также указал Runner; обратите внимание, что он поддерживает только уровень 1).

- Йерун

...