02 - Apresentação de dados em XML com XSL e HTML

15
César Augusto Pessôa

Transcript of 02 - Apresentação de dados em XML com XSL e HTML

César Augusto Pessôa

Sumário

Objetivos

O que são folhas de estilo

O que é XSL

Apresentando os dados de um XML

Dúvidas

Objetivos

Apresentar aos alunos o conceito de folhas

de estilo e formatação dinâmica de dados.

Demonstrar as possibilidades formatação

com a utilização HTML e métodos em XSLT.

O que é XSL eXtensible Stylesheet Language:

Foi criada para permitir a aplicação de folhas de

estilos a documentos XML. Ela portanto, ao contrário

do XML, não carrega informações sobre os dados,

mas sim, sobre sua apresentação.

eXtensible Stylesheet Language Transformer:

É a linguagem de programação utilizada para

transformar um documento XML em outro tipo de

documento baseado em uma linguagem de

programação para web (XHTML ou HTML5 por

exemplo).

Considere o arquivo XML abaixo<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="combustivel.xsl"?>

<abastecimentos>

<abastecimento id="1">

<dia>22</dia>

<mes>05</mes>

<ano>2007</ano>

</abastecimento>

<abastecimento id="2">

<dia>10</dia>

<mes>06</mes>

<ano>2008</ano>

</abastecimento>

<abastecimento id="3">

<dia>10</dia>

<mes>06</mes>

<ano>2008</ano>

</abastecimento>

</abastecimentos>

Exemplo de arquivo XSL<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>

<body>

<h1>Abastecimentos</h1>

<table border="1">

<tr bgcolor="red">

<th align="left">Dia</th>

<th align="left">Mês</th>

<th align="left">Ano</th></tr>

<xsl:for-each select="abastecimentos/abastecimento">

<tr>

<td><xsl:value-of select="dia"/></td>

<td><xsl:value-of select="mes"/></td>

<td><xsl:value-of select="ano"/></td>

</tr>

</xsl:for-each>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

Cabeçalho padrão do

Arquivo xsl

O template (modelo) será

Aplicado a todo arquivo

Toda TAG aberta deve

ser fechada

Código mesclado

com HTML

Elementos da XSLT <xsl:template match=”XPath”>

Define o caminho para o qual o modelo será aplicado, a variável XPath deve ser substituída por este valor. Caso o modelo seja aplicado ao elemento raiz e todos os seus filhos, utiliza-se o símbolo “/”.

Lembrando que a TAG xsl:template deve ser fechada no final do arquivo.

<xsl:value-of select=”XPath”> Indica um elemento (nó) do arquivo XML que deverá

ser extraído e apresentado.

Dentro desta TAG é definida a forma de apresentação destes dados, por exemplo utilizando uma lista ou tabela.

Elementos da XSLT xsl:for-each select=”XPath”

É utilizado para criar loops de repetição, como o

PARA no portugol (VisualG).

Irá extrair todos os valores dos elementos

xsl:value-of (do inglês valor de).

Além disso o operador for-each aceita os

seguintes operadores lógicos:

Operador Significado

= Igual a

!= Diferente de

&lt; Menor que

&gt; Maior que

Elementos da XSLT Exemplos:

Igual: extrai somente os elementos que possuem

exatamente um valor pré-definido.

Não igual: extrai somente os elementos que não

possuem um valor pré-definido.

Menor que: extrai somente os elementos que

possuem um valor menor que determinada condição.

Maior que: extrai somente os elementos que

possuem um valor maior que determinada condição.

Elementos da XSLT Exemplos:

Igual: selecionar somente os alunos que possuem o atributo nome igual a “César”.

Não igual: selecionar somente os alunos que possuem o atributo nome diferente de “ “ (vazio).

Menor que: selecionar somente os alunos com o atributo idade menor que 18.

Maior que: selecionar somente os alunos com o atributo idade maior que 16.

Elementos da XSLT <xsl:sort select=”XPath”>

Deve ser colocado dentro de um elemento for-each.

Determina a ordenação com que os elementos devem ser apresentados.

Exemplo:<xsl:for-each select=“abastecimentos/abastecimento">

<xsl:sort select=”ano”>

<tr>

<td><xsl:value-of select="dia"/></td>

<td><xsl:value-of select=“mes"/></td>

<td><xsl:value-of select=“ano"/></td>

</tr>

</xsl:for-each>

Elementos da XSLT <xsl:IF test=”expressão de teste”>

Deve ser colocado dentro de um elemento for-each.

Realiza testes condicionais, equiavele ao SE e ENTÃO.

Exemplo:<xsl:for-each select=“abastecimentos/abastecimento">

<xsl:if test=”ano &gt; 2000”>

<tr>

<td><xsl:value-of select="dia"/></td>

<td><xsl:value-of select=“mes"/></td>

<td><xsl:value-of select=“ano"/></td>

</tr>

</xsl:if>

</xsl:for-each>

Elementos da XSLT <xsl:choose>, <xsl:when>, <xsl:otherwise>

São utilizados para realizar diversos testes condicionais, equivale ao ESCOLHA e CASO.

Exemplo:<xsl:choose>

<xsl:when test="expression">

... algum código ...

</xsl:when>

<xsl:otherwise>

... algum código ....

</xsl:otherwise>

</xsl:choose>

Dúvidas?

César Augusto Pessôa

[email protected]