Upload
cesar-augusto-pessoa
View
109
Download
0
Embed Size (px)
Citation preview
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
< Menor que
> 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 > 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>