XSLT

parseur XSLT écrit en javascript (ActiveX)
parseur XSLT en PHP

XSLT

Les feuilles de style peuvent être de type CSS ou XSL
XML+XSL --processeur XSL--> nouveau document (XML, HTML par exemple)

En CSS:
Mode paragraphe (DIV) : display:block
Mode fil de l'eau (DIV) : display:inline
Mode masqué (DIV) : display:none

Appel par: <?xml-stylesheet type="text/css" href="livres.css"?>


En haut d'un document XSL:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
(Compris par IE6 et xt)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
(Ancienne écriture)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Avec référence au HTML:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/REC-html40">
Si on veut bénéficier des entités HTML dans la feuille de style: <!DOCTYPE xsl:stylesheet [<!ENTITY % isolat1 SYSTEM "isolat1.ent"> %isolat1;]>

<xsl:template match="/">

<xsl:for-each select="liste-livres/livre">
<xsl:value-of select="isbn"/>
</xsl:for-each>

<xsl:value-of select="//@prenom"/>
xsl:element génération dynamique d'un élément (couple balises)
<xsl:apply-templates> : appel des templates qui peuvent s'appliquer (sortes de fonctions)
Quand pas de template: sortie de la valeur textuelle contenue dans l'élément.
select peut s'appliquer pour apply-templates

Paramètres:
<xsl:param name="..."/> (on peut éventuellement définir la valeur par défaut)
appel par $nomParam
xt fichier.xml fichier.xsl nomParam="..."

<xsl:sort select="Tome" data-type="number"/>
Utilisé au sein d'un élément <xsl:apply-templates select="Ouvrage"></xsl:apply-templates>

Parcours d'un document

Utiliser l'un des deux appels suivants:
<xsl:apply-templates select="node()"/>
<xsl:apply-templates select="@*|node()">

Exemple:

<xsl:template match="/">

<html><xsl:apply-templates select="node()"/></html>
</xsl:template>

<xsl:template match="it">
<i><xsl:apply-templates select="node()"/></i>
</xsl:template>

Structures de contrôle

choose (when+,otherwise?)

<xsl:choose>
  <xsl:when test="TitreSerie=$TitreSerie">
  </xsl:when>
  <xsl:otherwise>
  </xsl:otherwise>
</xsl:choose>

Templates nommés

<xsl:call-template name = "leTemplate" >
	<xsl:with-param name = "leParametre" >
		valeur
	</xsl:with-param>
</xsl:call-template>

<xsl:template name = "leTemplate" > <xsl:param name = "leParametre" > valeur par défaut </xsl:param> <xsl:value-of select = "$leParametre" /> </xsl:template>

xslt

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

	<xsl:template match="/">
		<html>
			<body>
				<xsl:apply-templates select="Biblio/Genre">
					<xsl:sort select="TitreGenre"/>
				</xsl:apply-templates>
			</body>
		</html>
	</xsl:template>

	<xsl:template match="Genre">
	..
	</xsl:template>
</xsl:stylesheet>

	<xsl:param name="param1" /> (transmis au processeur XSLT)
	<xsl:variable name="pi">3.1416</xsl:variable> (constante)
	<a><xsl:attribute name="href">test.htm</xsl:attribute>lien</a>
	<xsl:value-of select="$baseImages"/> équivaut à {$baseImages} 

Début classique d'un fichier XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE facture SYSTEM "facture.dtd">
<?xml-stylesheet href="style.xsl" type="text/xsl"?>
<facture>

xsl fo

Un fichier XSL-FO est un mélange de texte provenant de votre document source XML et des balises XSL-FO qui suggèrent comment le texte doit être formaté. C'est l'analyseur XSL-FO qui crée réellement les lignes de texte composées et les définit sur les pages. XSL-FO génère généralement un fichier PDF ou PostScript qui peut être transmis à une imprimante pour produire une sortie papier.