A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Primeiro Trabalho Prático de GTI Resolução. Exercício 1 Considere o seguinte conjunto de notícias extraído da versão HTML do Público Online: Tomando como.

Apresentações semelhantes


Apresentação em tema: "Primeiro Trabalho Prático de GTI Resolução. Exercício 1 Considere o seguinte conjunto de notícias extraído da versão HTML do Público Online: Tomando como."— Transcrição da apresentação:

1 Primeiro Trabalho Prático de GTI Resolução

2 Exercício 1 Considere o seguinte conjunto de notícias extraído da versão HTML do Público Online: Tomando como exemplo o RSS da Figura 1, crie um documento XML que utilize RSS para codificar a informação apresentada acima. Defina ainda, utilizando XSD, um esquema XML para o dialecto RSS utilizado no ficheiro que criou. O esquema deve validar tanto o documento criado como o exemplo da Figura 1.

3 Solução Jornal Público RSS Feed do Público Online PT Passageiros da Air France podem ver imagens de satélite das suas viagens Viajar de avião vai deixar de ser sinónimo de não ver nada pela janela até que se chega às imediações do aeroporto. A Agência Espacial Europeia (ESA) juntou-se à Air France e vai ceder imagens de satélite para ilustrar algumas das rotas da companhia aérea francesa. 07/09/2007 Novo iPod Touch A Apple apresentou hoje a nova linha de iPods. A grande novidade é o iPod Touch, um modelo inspirado no iPhone, que apresenta um grande ecrã, bem como uma interface sensível ao toque e sem botões físicos. 05/09/2007

4 Resultado

5 Exercício 2 Explique nas suas palavras a lógica subjacente e indique o resultado, em termos de um documento XML, das seguintes expressões XQuery quando avaliadas sob o documento RSS da Figura 1. //title for $i in.//item where $i/pubDate() = "2002/5/23" return $i for $a in //channel/item $b in //channel/item where starts-with($a, substring($b,1,5)) return $a/title //channel/item/*[position()<2]

6 Solução //title for $i in.//item where $i/pubDate() = "2002/5/23" return $i for $a in //channel/item $b in //channel/item where starts-with($a, substring($b,1,5)) return $a/title Selecciona todos os elementos title (i.e. elementos title) Retorna os elementos item com um elemento filho pubDate cujo conteúdo textual seja 2002/5/23 Faz o produto cartesiano entre todos os elementos item filhos de um elemento channel com todos os elementos item filhos de um elemento channel. Deste produto cartesiano, selecciona os elementos com um conteúdo textual em que os 5 primeiros caracteres são iguais. O resultado produzido contêm 13 elementos, tendo-se que as repetições correspondem às comparações de um elemento com ele próprio.

7 Solução (cont.) //channel/item/*[position()<2] Selecciona o primeiro elemento filho de um elemento item, que por sua vez seja filho de um elemento channel

8 Exercício 3 Tome como exemplo o ficheiro RSS da Figura 1. Escreva expressões XQuery que permitam recuperar a seguinte informação: Os títulos de todos os artigos de um dado feed RSS. A descrição do terceiro artigo de um dado feed RSS. O URL de um artigo cujo título seja "Title for article 2" ou "Title for article 3". Todos os artigos com a mesma data de publicação. O número de artigos contendo informação sobre a data de publicação. O título dos artigos com data de publicação entre 2001 e 2003.

9 Solução Os títulos de todos os artigos de um dado feed RSS. for $a in doc('file:exemplo-rss.xml')//channel/item return $a/title Title for article 1 Title for article 2 Title for article 3 This is the title for article 4

10 Solução A descrição do terceiro artigo de um dado feed RSS. let $doc := doc('file:exemplo-rss.xml') return $doc//channel/item[3]/description This is the text associated with Article 3.

11 Solução O URL de um artigo cujo título seja "Title for article 2" ou "Title for article 3". for $a in doc('file:exemplo-rss.xml')//channel/item where $a/title = 'Title for article 2' or $a/title = 'Title for article 3' return $a/link

12 Solução Todos os artigos com a mesma data de publicação. let $doc := doc('file:exemplo-rss.xml') for $a in $doc//channel/item, $b in $doc//channel/item where $a/pubDate eq $b/pubDate and $a/title ne $b/title return $a Title for article 3 This is the text associated with Article /5/15 This is the title for article 4 This is the text associated with Article /5/15

13 Solução O número de artigos contendo informação sobre a data de publicação. let $doc := doc('file:exemplo-rss.rss') return count($doc//channel/item[pubDate]) 4

14 Solução O título dos artigos com data de publicação entre 2001 e for $a in doc('file:exemplo-rss.xml')//channel/item where starts-with($a/pubDate,'2001') or starts-with($a/pubDate,'2002') or starts- with($a/pubDate,'2003') return $a/title Title for article 1 Title for article 2

15 Exercício 4 Escreva uma XSLT que permita transformar um feed RSS como o que se apresenta na Figura 1 num ficheiro HTML. O título da página HTML deverá corresponder ao título do canal RSS. De cada artigo deverá ser apresentado o título com um hiperlink para o URL original, a descrição do artigo e a data de publicação. Na resolução do exercício deverá constar o código XSLT e o resultado produzido pela transformação.

16 Solução

17 Resultado Example Articles for GTI Course Title for article /8/13 Title for article /5/23 This is the text associated with Article 1. Title for article /5/15 This is the text associated with Article 3. This is the title for article /5/15 This is the text associated with Article 4.

18 Exercício 5 Escreva uma XQuery que permita transformar um feed RSS como o que se apresenta na Figura 1 num ficheiro HTML. O título da página HTML deverá corresponder ao título do canal RSS. De cada artigo deverá ser apresentado o título com um hiperlink para o URL original, a descrição do artigo e a data de publicação. Os artigos deverão ainda ser ordenados por data de publicação. Na resolução do exercício deverá constar a expressão XQuery e o resultado produzido.

19 Solução {string(doc('file:example-doc.xml')//channel/title)} { for $i in doc('file:example-doc.xml')//channel/item order by $i/pubDate return {string($i/title)} {string($i/pubDate)} {string($i/description)} }

20 Resultado Example Articles for GTI Course Title for article /8/13 Title for article /5/23 This is the text associated with Article 1. Title for article /5/15 This is the text associated with Article 3. This is the title for article /5/15 This is the text associated with Article 4.


Carregar ppt "Primeiro Trabalho Prático de GTI Resolução. Exercício 1 Considere o seguinte conjunto de notícias extraído da versão HTML do Público Online: Tomando como."

Apresentações semelhantes


Anúncios Google