Importando XML DOM parser em Delphi?

Uma visão geral ...

Um dos novos recursos do Delphi 5 é que se pode instalar servidores COM como componentes no Delphi IDE. Existem já alguns servidores COM instalados na Paleta de Servidores como o Microsoft Word, Excel etc, Fora isso, o usuário pode instalar outros servidores COM através de Projeto | Importar Tipos de Biblioteca. Isto vai criar uma classe wrapper para esse componente. Podemos usar essa classe wrapper para construir um pacote no Delphi e instalar como componentes no IDE. Este é realmente um ótimo recurso no Delphi 5.

Esta opção será muito útil quando você quiser usar um componente COM escrito em outras línguas. Você só precisará importá-los através desta opção Importar Tipos de Biblioteca. Você pode acessar os métodos / propriedades desse componente COM no Delphi 5.

Eu usei o Msxml.dll (Versão 2,0) para instalar os componentes XML Parsing no IDE através da opção Importar Tipos de Biblioteca.

Passos para importar componentes XML DOM parser:

  1. Vá para Projeto | Importar Tipos de Biblioteca (ver fig.1 abaixo)
  2. Escolha Microsoft XML, versão 2.0 (versão 2,0)
  3. Em seguida, escolha criar unidade
  4. Isto vai criar uma classe wrapper para aquela parser num arquivo em pascal
  5. Você pode colocar esse arquivo em pascal num pacote e instalá-lo.
  6. Você receberá um conjunto de componentes instalados na paleta ActiveX do Delphi
  7. Entre elas estará o componente chamado DOMDocument
Agora você pode usar os métodos desse componente para analisar o XML. Existem alguns outros componentes como o OMFreeThreadedDocument, XMLHttpRequest, XMLDSOControl e XmlDocument.

Existem duas formas de carregar o XML no componente para analisar.

1. Carregando o XML como uma string:

Você pode usar o método "loadXML" para carregar uma string XML

Por ex. DOMDocument.loadXML ( 'string XML');

2. Carregando o XML como um arquivo:

Você pode usar o método "load" para carregar um arquivo XML.

Por ex. DOMDocument.load ( 'Caminho do arquivo XML')

Depois que você carregar a string XML ou o arquivo XML no componente, o XML será analisado e se houver algum erro durante a analise, esses erros serão intimidados ao usuário pela via de exceção.

Você pode verificar o local onde você há o erro de analise e também os motivos para isso.

Encontrando o lugar onde o erro de analise ocorreu:

DOMDocument.parseError.srcText lhe dará a linha exata no XML onde ocorreu o erro.
Os dois acima são realmente úteis em diagnosticar erros de analise.

Conseguindo a razão do erro de análise:

DOMDocument.parseError.reason lhe dará o motivo para tal erro de análise.

Se não houver erros reportados pelo parser, então poderemos chegar aos dados analisados através de métodos como o getElementsByTagName, Get_nodeName, Get_nodeValue etc,

O arquivo DTD usado na XML deve estar no caminho de pesquisa da aplicação ou deve estar no caminho onde está o exe. Só então a aplicação será capaz de ver as informações DTD usadas em tal arquivo ou string XML e analisar corretamente.

Importante:
  1. Quando um aplicativo for implantado em uma nova máquina, é preciso não esquecer de incluir esse arquivo DTD no mesmo caminho que o exe.
  2. Tenha certeza que todas as strings XML / arquivos XML que você está enviando para o componente siga o DTD mencionado em tal arquivo DTD. Mesmo um pequeno erro ortográfico ou uma letras a mais causará uma exceção.
Aproveite!
Magesh.