Departamento de Informática – UFV- Brasil
XML em Aplicações e-Business- Módulo 5: Folhas de Estilo XSL
Vinci Pegoretti Amorim
[email protected]://www.javablogs.com.br/blogs/page/Vinci
XML + HTML + XSLT
XML XSL
Parser
HTML
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output
method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="/"> <html> <body> <xsl:for-each select="/faqs/faq"> <h3>
<xsl:value-of select="pergunta"/> </h3>
<xsl:value-of select="resposta"/> </xsl:for-each> </body> </html> </xsl:template></xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output
method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="/"> <html> <body>
<xsl:for-each select="/faqs/faq"> <h3>
<xsl:value-of select="pergunta"/> </h3>
<xsl:value-of select="resposta"/> </xsl:for-each> </body> </html> </xsl:template></xsl:stylesheet>
● Indica caminhos ● Indica quais as partes serão tratadas pelas folhas de estilo
XSL :: XPath
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
/faqs Contexto: /
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
/faqs@assunto Contexto:/
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
/faqs/faq[2] Contexto: /
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
/faqs/faq[position() < @cod] Contexto: /
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
/faqs/faq/pergunta Contexto: /
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
. Contexto: /faqs/faq[1]/pergunta
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
.. Contexto: /faqs/faq[1]/pergunta
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
../resposta Contexto: /faqs/faq[1]/pergunta
<?xml version=”1.0”?><faqs assunto=”xml”> <faq cod=”2”>
<pergunta>O que é XML?</pergunta><resposta>Uma fábrica de linguagens</resposta>
</faq> <faq cod=“1”>
<pergunta>O que significa a sigla XML?</pergunta><resposta>Extensible Markup Language</resposta>
</faq></faqs>
XSL :: XPath :: Exemplos
faq[2]/pergunta | faq[1]/resposta Contexto: /faqs
XSL :: XPath :: Sintaxe● Indentifica os nodos na forma
/nodo_raiz/filhos/filhos_dos_filhos_da_raiz● O início com / indica caminho absoluto● O . indica o nodo atual, .. indica o nodo pai do atual
● elemento@nome_do_atributo● elemento[n] ● elemento[@atributo = valor] ● position()
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output
method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="/"> <html> <body> <xsl:for-each select="/faqs/faq"> <h3>
<xsl:value-of select="pergunta"/> </h3>
<xsl:value-of select="resposta"/> </xsl:for-each> </body> </html> </xsl:template></xsl:stylesheet>
XSL :: XSLT<xsl:stylesheet xmlns:xsl="http:// ..."
version="1.0"><xsl:output method="xml | html | txt"><xsl:template match="/xpath"><xsl:for-each select="/xpath"><xsl:value-of select="/xpath"/><xsl:if test="expressão"><xsl:include href="file"/><xsl:apply-templates/><xsl:element><xsl:attribute>
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output
method="html" encoding="utf-8" indent="yes"/>
<xsl:include href="link.xsl"/>
<xsl:template match="/"> <html> <body>
<xsl:apply-templates/> </body> </html> </xsl:template></xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/faqs/faq"> <xsl:element name="a">
<xsl:attribute name="href">
http://www.xml.com</xsl:attribute>
<xsl:value-of select="pergunta[1]"/>
</xsl:element> </xsl:template>
</xsl:stylesheet>
java -jar saxon8.jar -o a.html a.xml a.xsl
Saxon
<html><body>
<a href=”http://www.xml.com“>O que é XML?
</a></body>
</html>
● Agregação ● Desagregação● Filtragem● Reordenação e restruturação● Uma fonte, várias apresentações● Várias fontes, uma apresentação● Formatação para cada dispositivo específico
XSL :: Importância
Top Related