Hmm, essaye de rajouter standalone="no" dans le header xml, et vire le header xml dans le DTD (ce n'est pas du xml !) ça devrait marcher.
Ymox Le 25/02/2010 à 11:08Edité par Ymox le 25/02/2010 à 11:28 C'est quand-même étrange que TOUS les navigateurs cités (sauf IE, donc) réagissent ainsi… Je regardais le DTD du XHTML1 strict ainsi que la définition du doctype dans une page html, c'est presque pareil, à part SYSTEM qui devient PUBLIC (j'ai essayé de changer l'un en l'autre, ça ne change rien) et une chaîne apparemment descriptive (peut-être pas, mais ça n'a pas l'air d'une URL)
Est-ce que ça veut dire que seul IE utilise encore les déclarations <!DOCTYPE […] > ?

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?
j'ai déja utilisé des DTD perso avec firefox, pas tout récemment en plus.
a la place de SYSTEM on peut pas essayer PUBLIC ?
Ymox Le 11/03/2010 à 11:46 Bon, je n'en suis plus là, maintenant je travaille à autre chose.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="PCShop.xsl"?>
<PCShop>
<Nom>Magasin PC Shop</Nom>
<Vendeur ID="Abbondio">
<NomVendeur>Abbondio</NomVendeur>
<AdresseVendeur>Nyon</AdresseVendeur>
<DateNaissance>1966</DateNaissance>
<Client>
<Nom>Cuendet</Nom>
<Prenom>Michel</Prenom>
<Adresse>Lausanne</Adresse>
<Credit>3600</Credit>
<Titre>
<NoTitre>211</NoTitre>
<LibelleTitre>CDRW 8x</LibelleTitre>
</Titre>
</Client>
<Client>
<Nom>Leresche</Nom>
<Prenom>Karl</Prenom>
<Adresse>Geneve</Adresse>
<Credit>2400</Credit>
<Titre>
<NoTitre>220</NoTitre>
<LibelleTitre>PIV 1.8G</LibelleTitre>
</Titre>
<Titre>
<NoTitre>221</NoTitre>
<LibelleTitre>PIV 1.8G</LibelleTitre>
</Titre>
</Client>
</Vendeur>
<Vendeur ID="Bolomey">
<NomVendeur>Bolomey</NomVendeur>
<AdresseVendeur>Lausanne</AdresseVendeur>
<DateNaissance>1955</DateNaissance>
<Client>
<Nom>Pittier</Nom>
<Prenom>Jean</Prenom>
<Adresse>Lausanne</Adresse>
<Credit>6000</Credit>
<Titre>
<NoTitre>210</NoTitre>
<LibelleTitre>RAM 256M</LibelleTitre>
</Titre>
<Titre>
<NoTitre>210</NoTitre>
<LibelleTitre>RAM 512M</LibelleTitre>
</Titre>
<Titre>
<NoTitre>210</NoTitre>
<LibelleTitre>RAM 128M</LibelleTitre>
</Titre>
</Client>
<Client>
<Nom>Buzzi</Nom>
<Prenom>Paul</Prenom>
<Adresse>Lausanne</Adresse>
<Credit>4800</Credit>
<Titre>
<NoTitre>210</NoTitre>
<LibelleTitre>CDRW 12x</LibelleTitre>
</Titre>
</Client>
</Vendeur>
<Vendeur ID="Dubois">
<NomVendeur>Dubois</NomVendeur>
<AdresseVendeur>Vevey</AdresseVendeur>
<DateNaissance>1977</DateNaissance>
<Client>
<Nom>Gasser</Nom>
<Prenom>Claude</Prenom>
<Adresse>Nyon</Adresse>
<Credit>2400</Credit>
<Titre>
<NoTitre>300</NoTitre>
<LibelleTitre>HD 40G IDE</LibelleTitre>
</Titre>
</Client>
</Vendeur>
<Vendeur>
<NomVendeur>Tartempion</NomVendeur>
<AdresseVendeur>Lausanne</AdresseVendeur>
<DateNaissance>1966</DateNaissance>
<Client>
<Nom>Leresche</Nom>
<Prenom>Karl</Prenom>
<Adresse>Geneve</Adresse>
<Credit>2400</Credit>
<Titre>
<NoTitre>220</NoTitre>
<LibelleTitre>PIV 1.8G</LibelleTitre>
</Titre>
<Titre>
<NoTitre>221</NoTitre>
<LibelleTitre>PIV 1.8G</LibelleTitre>
</Titre>
</Client>
</Vendeur>
</PCShop>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Statistiques des vendeurs du <xsl:value-of select="PCShop/Nom"/></title>
<basefont face="Arial"/>
</head>
<body text="blue">
<xsl:for-each select="PCShop/Vendeur"><!-- ici -->
<table bgcolor="lightblue" border="1" bordercolor="blue" width="100%">
<td valign="middle" align="center"><H1><xsl:value-of select="NomVendeur"/></H1></td>
</table>
<blockquote>
<table width="500">
<xsl:for-each select="*[count(Titre)=1]">
<tr>
<td colspn="2"><b><xsl:value-of select="Nom"/></b><xsl:text> </xsl:text><xsl:apply-templates select="Prenom"/></td>
<td><xsl:apply-templates select="Adresse"/></td>
<td><xsl:apply-templates select="Credit"/></td>
</tr>
<xsl:for-each select="Titre">
<tr>
<td colspan="1" align="right"><xsl:value-of select="NoTitre"/></td>
<td colspan="3"><xsl:apply-templates select="LibelleTitre"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</blockquote>
<hr />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Je souhaiterais n'afficher que les vendeurs qui ont un (ou plusieurs) client(s), le(s)quel(s) n'a (n'ont) qu'un titre, et n'afficher que ces clients. Les vendeurs n'en ayant pas n'ont pas a être affichés. Avec ce code, Tartempion s'affiche encore. J'ai essayé avec [count(Client/Titre)=1] comme prédicat à l'endroit marqué (le commentaire "ici"), mais là seul Dubois s'affiche…
Any idea?

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?
Déjà il vaut mieux utiliser des apply-templates plutôt que des for-each c'est plus efficace pour le parser et plus rapide, sinon tu y étais presque je pense que tu y serais arrivé tout seul sans les for-each
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<title>Statistiques des vendeurs du <xsl:value-of select="PCShop/Nom"/>
</title>
<basefont face="Arial"/>
</head>
<body text="blue">
<xsl:apply-templates select="/PCShop/Vendeur"/>
</body>
</html>
</xsl:template>
<xsl:template match="Vendeur">
<xsl:variable name="TESTTITRE">
<xsl:choose>
<xsl:when test="Client[count(Titre)=1]">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$TESTTITRE='true'">
<table bgcolor="lightblue" border="1" bordercolor="blue" width="100%">
<td valign="middle" align="center">
<H1>
<xsl:value-of select="NomVendeur"/>
</H1>
</td>
</table>
<xsl:apply-templates select="Client"/>
</xsl:if>
</xsl:template>
<xsl:template match="Client">
<xsl:variable name="NBTITRECLIENT">
<xsl:value-of select="count(Titre)"/>
</xsl:variable>
<xsl:if test="$NBTITRECLIENT='1'">
<blockquote>
<table width="500">
<tr>
<td colspn="2">
<b>
<xsl:value-of select="Nom"/>
</b>
<xsl:text> </xsl:text>
<xsl:apply-templates select="Prenom"/>
</td>
<td>
<xsl:apply-templates select="Adresse"/>
</td>
<td>
<xsl:apply-templates select="Credit"/>
</td>
</tr>
<xsl:apply-templates select="Titre"/>
</table>
</blockquote>
<hr/>
</xsl:if>
</xsl:template>
<xsl:template match="Titre">
<tr>
<td colspan="1" align="right">
<xsl:value-of select="NoTitre"/>
</td>
<td colspan="3">
<xsl:apply-templates select="LibelleTitre"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Ymox Le 23/04/2010 à 15:18 Ah, je me demandais si on allait me répondre, même si c'était pour me dire "Non, je ne sais pas comment on fait". Merci grincheux.
Et pour les apply-template's, je sais, mais on apprenait d'abord en mode procédural avant de passer à l'équivalent de l'orienté objet.
Je tiens à préciser que ce n'était pas pour un cours, donc je ne vous ai pas demandé de résoudre un exercice, mais en fait de répondre à une question à laquelle notre prof n'a pas pu répondre non-plus.

Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ?