» Início » Programação » XML » Um pouco além do XML: Introdução a XPath
 
Avaliação: | Publicado em: 12/10/2006
Um pouco além do XML: Introdução a XPath


Alguns conceitos utilizados na XPath

Para entender um pouco mais sobre a XPath é necessário entender alguns conceitos correlacionados. Esses conceitos podem parecer de difícil assimilação mas posteriormente veremos que a XPath é bem mais simples do que parece.

Nós: Todo documento XML é formado por nós. Temos o nó raiz, nós intermediários, nós dentro de outros nós, etc. No documento de exemplo logo a seguir você verá o conjunto de nós encadeados formando o documento XML.

Tipos de Nós: É intuitivo pensar que exista apenas um tipo de nó: Os elementos. Mas para a especificação XML os elementos não são os únicos tipos de nós existentes. Podemos nos deparar com nós do tipo elementos, atributos, comentários, instruções de processamento, etc. No exemplo abaixo temos um tipo de nó elemento (Site) e um tipo de nó atributo (URL). Ex: <Site URL="http://www.xml.org">Applying XML and Web Services Standarts</Site>. Nesse caso o valor do nó "Site" é "Applying XML and Web Services Standarts" e do nó "URL" é "http://www.xml.org". Quando utilizamos atributos na XPath devemos especificar o @ antes do nome do atributo.

Localização: A navegação em um documento XML é muito parecida com a navegação em uma estrutura de diretórios ou nos hyperlinks que usamos na internet. Quando desejamos acessar um determinado arquivo, a localização desse arquivo é composta por todas as subpastas que tivemos que navegar até chegar a esse arquivo. Ex: C:\Projetos\XML\XPath\Livros.XML. Se fosse uma página de Internet talvez tívessemos algo do tipo http://localhost/Projetos/XML/XPath/Livros.XML. Com a XPath a localização seria expressa na forma /Projetos/XML/XPath/ e o arquivo XML seria:

<Projetos>
  <XML>
    <XPATH>Livros.XML</XPATH>
  </XML>
</Projetos>

Eixos: Um documento XML é uma representação de uma árvore. Nessa árvore existem nós pais, nós filhos, nós irmãos, etc. No documento XML abaixo podemos perceber algumas dessas relações. Veja que "Materiais" é o nó raiz, "Material" é filho de "Materiais" e ao mesmo tempo pai de "Nome", "Valor" e "Cores". Perceba também que "Nome", "Valor" e "Cores" são nós irmãos. Os eixos são essas referência e representam coordenadas para o tipo de nó a ser utilizado na XPath.

<Materiais>
  <Material>
    <Nome>Caneta</Nome>
    <Valor>2</Valor>
    <Cores>
      <Cor>Azul</Cor>
      <Cor>Verde</Cor>
    </Cores>
  <Material>
</Materiais>

Expressões: Os comandos utilizados na XPath são conhecidos como expressões XPath. Essas expressões são compostas de informações de localização dos nó a ser pesquisado, funções utilizadas, etc. Em linhas gerais ela é a instrução que fará a pesquisa (como se fosse uma instrução SQL). Ex: /Materiais/Material/Nome

Funções e variáveis: A XPath dispõe de diversas funções básicas que são encontradas na maioria das linguagens de programação. Ex: substring, round, etc.

ResultSet: O resultado de uma consulta XPath, em princípio, deve ser uma coleção de nós que também representa um documento XML.

Realizada a explicação de alguns conceitos necessários para a XPath, podemos utilizar alguns exemplos. Diversas linguagens de programação como o ASP, .NET, ColdFusion, PHP, etc possuem classes prontas para trabalhar com XPath. Você também poderá utilizar programas próprios para trabalhar com a XPath como o XML Stylus Studio, Altova, XML Spy, etc. Foi disponibilizada uma aplicação em C# para utilizar os exemplos caso nenhuma outra esteja disponível. Logo abaixo é exibido o arquivo XML de exemplo com o qual iremos trabalhar.


Onde tenho que inserir o comando XPath para que eu veja o teste funcionando? É no próprio arquivo ou tenho que criar um outro em ASP para ver?