Categorias
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:
- Vá para Projeto | Importar Tipos de Biblioteca (ver fig.1 abaixo)
- Escolha Microsoft XML, versão 2.0 (versão 2,0)
- Em seguida, escolha criar unidade
- Isto vai criar uma classe wrapper para aquela parser num arquivo em pascal
- Você pode colocar esse arquivo em pascal num pacote e instalá-lo.
- Você receberá um conjunto de componentes instalados na paleta ActiveX do Delphi
- Entre elas estará o componente chamado DOMDocument
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:
- 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.
- 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.
Magesh.