Consultado Documentos XML com XPATH Vnia Maria Ponte

  • Slides: 17
Download presentation
Consultado Documentos XML com XPATH Vânia Maria Ponte Vidal vvidal@lia. ufc. br

Consultado Documentos XML com XPATH Vânia Maria Ponte Vidal vvidal@lia. ufc. br

XPATH n n n É linguagem para referenciar partes de um documento XML. Define

XPATH n n n É linguagem para referenciar partes de um documento XML. Define uma biblioteca de funções padrões para trabalhar com strings, números e booleanos. Foi projetada para ser usada por XSLT, XPointer e outros softwares. Sem XPath não seria possível criar documentos XSLT. Modela um documento XML como uma árvore de nós: nó elemento, nó atributo, nó texto, etc.

XPATH n n XPath usa expressões de caminho para identificar nós num documento XML.

XPATH n n XPath usa expressões de caminho para identificar nós num documento XML. Expressões de caminho são parecidas com as expressões de caminho usadas no sistema de arquivo de um computador. Se o caminho XPath começa com uma barra(/), significa um caminho absoluto para o elemento. Se o caminho XPath começa com duas barras(//), significa que todos os elementos que satisfizerem o critério serão selecionados, ainda se eles estiverem em diferentes níveis na árvore.

ESTUDO DE CASO I Elemento Raiz livraria <!ELEMENT livraria (livro)+> livro <!ELEMENT livro (titulo,

ESTUDO DE CASO I Elemento Raiz livraria <!ELEMENT livraria (livro)+> livro <!ELEMENT livro (titulo, editora, preço, autor @ISBNtituloeditora preço +)> nome email nom email <!ELEMENT titulo 1234 Inside. New 100, 00 (#PCDATA)> XML Riders Holz@cs. br stev@cs. br Steven Holzner <!ELEMENT editora (#PCDATA) > <!ELEMENT preco Definição da DTD: (#PCDATA) > livraria. dtd <!ELEMENT autor (email? , nome)>

XPATH n Exemplo(1) n Obtenha todas as informações do livro cujo título é “Inside

XPATH n Exemplo(1) n Obtenha todas as informações do livro cujo título é “Inside XML”. document(“liv. xml” ) / livraria / livro[titulo =“Inside XML”]

XPATH n Exemplo(2) n Obtenha as informações dos autores do livro cujo título é

XPATH n Exemplo(2) n Obtenha as informações dos autores do livro cujo título é “Inside XML”. $liv / livraria / livro [titulo =“Inside XML”] / autor $liv= document(“liv. xml” )

XPATH n Exemplo(3) n Liste os livros de autoria de Steven $liv / livraria

XPATH n Exemplo(3) n Liste os livros de autoria de Steven $liv / livraria / livro [autor/nome =“steven”]

XPATH n Exemplo(4) n Liste o título dos livros de autoria de Steven $liv

XPATH n Exemplo(4) n Liste o título dos livros de autoria de Steven $liv / livraria / livro [autor/nome =“steven”]/titulo/text()

XPATH n Exemplo(5) n Liste ISBN, título e editora dos livros cujo o autor

XPATH n Exemplo(5) n Liste ISBN, título e editora dos livros cujo o autor é “Steven”

XPATH n Exemplo(6) n Liste o isbn dos livros de autoria de Steven $liv

XPATH n Exemplo(6) n Liste o isbn dos livros de autoria de Steven $liv / livraria / livro [autor/nome =“steven”]/@isbn Nomes de atributos são precedidos com @ $liv / livraria / livro [autor/nome =“steven”]/@* Obtém todos os atributos do elemento no contexto corrente

Estudo de Caso II catalogo <catalogo> <cd pais=“Brasil”> <cd pais =“Brasil”> <titulo>Milagreiro</titulo> <artista>Djavan</artista> <preco>15,

Estudo de Caso II catalogo <catalogo> <cd pais=“Brasil”> <cd pais =“Brasil”> <titulo>Milagreiro</titulo> <artista>Djavan</artista> <preco>15, 00</preco> </cd> <cd pais=“Brasil”> <cd pais =“Brasil”> <titulo>O mito</titulo> <artista>Elis Regina</artista> <preco>20, 00</preco> </cd> <cd pais =“Brasil”> <cd pais=“Brasil”> <titulo>Realce</titulo> <artista>Gilberto Gil</artista> <titulo> <preco>15, 00</preco> <artista> </cd> <preco> </catalogo> Milagreiro Djavan 15, 00 O mito Elis Regina 20, 00 Realce Gilberto Gil 15, 00

Xpath n Selecionar todos os elementos filhos de todos os elementos cd do elemento

Xpath n Selecionar todos os elementos filhos de todos os elementos cd do elemento catalogo. $catalogo / cd / * Curingas podem ser usados para selecionar elementos XML desconhecidos.

n n Selecionar todos os elementos preço que são elementos netos do elemento catalogo:

n n Selecionar todos os elementos preço que são elementos netos do elemento catalogo: n $catalogo /catalogo/*/preço Selecionar todos os elementos preco que têm dois ancestrais: n $catalogo /*/*/preco catalogo <cd pais=“Brasil”> <titulo> Milagreiro <artista> Djavan <preco> 15, 00 <cd pais=“Brasil”> <titulo> O mito <artista> Elis Regina <preco> 20, 00 <cd pais=“Brasil”> <titulo> Realce <artista> Gilberto Gil <preco> 15, 00

Xpath n Obtenha o primeiro elemento catalogo cd filho do elemento catálogo: <cd pais=“Brasil”>

Xpath n Obtenha o primeiro elemento catalogo cd filho do elemento catálogo: <cd pais=“Brasil”> n n $catalogo /catalogo/cd[1] Obtenha o último elemento cd filho do elemento catálogo: n $catalogo/cd[l ast()] <titulo> Milagreiro <artista> Djavan <preco> 15, 00 . . . <cd pais=“Brasil”> <titulo> Realce <artista> Gilberto Gil <preco> 15, 00

n Selecionar todos os elementos cd filho do elemento catálogo que têm um elemento

n Selecionar todos os elementos cd filho do elemento catálogo que têm um elemento preco: catalogo $cat /catalogo/cd[preco] • Selecionar todos os elementos cd filho do elemento catálogo que têm um elemento preco com o valor de 15, 00: $cat /catalogo/cd[preco=15, 00] <cd pais=“Brasil”> <titulo> Milagreiro <artista> Djavan <preco> 15, 00 <cd pais=“Brasil”> <titulo> O mito <artista> Elis Regina <preco> 20, 00 <cd pais=“Brasil”> • Selecionar todos os elementos preco dos elementos cd cujo elemento preco com valor de 15, 00: /catalogo/cd[preco=15, 00]/preco <titulo> Realce <artista> Gilberto Gil <preco> 15, 00

Selecionar todos os atributos pais: n $cat//@país Selecionar todos os elementos cd que tem

Selecionar todos os atributos pais: n $cat//@país Selecionar todos os elementos cd que tem um atributo pais: n $cat //cd[@país] Selecionar todos os elementos cd que tem algum atributo: n $cat //cd[@*] catalogo <cd pais=“Brasil”> <titulo> Milagreiro <artista> Djavan <preco> 15, 00 <cd pais=“Brasil”> <titulo> O mito <artista> Elis Regina <preco> 20, 00 <cd pais=“Brasil”> <titulo> Realce <artista> Gilberto Gil <preco> 15, 00

XPATH n Pode-se selecionar pai, filhos e irmãos, usando as expressões: parent: : -

XPATH n Pode-se selecionar pai, filhos e irmãos, usando as expressões: parent: : - Pai do elemento contexto n child: : - filho do elemento contexto n preceding-sibling: : - irmão que precede n following-sibling: : - irmão que segue n n n Ancestor: : - ancestrais do elemento contexto Descendante: : - descendentes do elemento contexto.