XPath é uma linguagem que lhe permite trabalhar facilmente com os seus documentos XML. Já é utilizável através do DOM Find XML element e com o comando 4D v18 R3, o suporte da sintaxe XPath foi drasticamente melhorado. Se estiver entre aqueles que solicitaram características como a utilização de um wildcard num caminho, então continue a ler!
Para utilizar a nova sintaxe com as aplicações existentes, é necessário verificar a configuração de compatibilidade “Usar XPath padrão”. As novas bases de dados criadas recentemente utilizam a nova sintaxe por defeito. Pode agora usar novas expressões como //, @, *, last() para simplificar as suas pesquisas.
Exemplos de escrita de previsões
Vamos utilizar o seguinte documento XML nos exemplos abaixo:
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="en">The Wheel of Time</title> <title lang="fr">La roue du temps</title> <price>29.99</price> </book> <book> <title lang="en">Harry Potter</title> <price>50.00</price> </book> <book> <title lang="en">Learning XML</title> <price>39.95</price> </book> </bookstore>
- Encontre o elemento próximo ao último elemento do livro que é o filho do elemento da livraria:
$Dom_root2:=DOM Find XML element($Dom_root;"/bookstore/book[last()-1]";$arrAfound)
// Returns
//‹book›
// ‹title lang="en"›Harry Potter‹/title›
// ‹price›50.00‹/price›
//‹/book›
- Encontrar todos os elementos do título que têm um atributo “lang” com um valor de “fr”:
$Dom_root2:=DOM Find XML element($Dom_root;"//title[@lang='fr']";$arrAfound)
// Returns ‹title lang="fr"›La roue du temps‹/title›
- Encontrar todos os elementos do livro que têm um preço igual a 39,95:
$Dom_root2:=DOM Find XML element($Dom_root; "book[price=39.95]";$arrAfound)</br />
// Returns
//‹book›
// ‹title lang="en"›Learning XML‹/title›
// ‹price›39.95‹/price›
//‹/book›
Estes são apenas alguns exemplos do que se pode fazer com as novas expressões. Pode misturá-las de uma forma mais ou menos complexa para encontrar os resultados de que necessita. Consulte a documentação para ver o que pode fazer com estas novas melhorias com mais detalhe.