Bonjour ,

Je tente de monter un site de location d'appart à l'aide du trio PHP/XSL/XML.

Dans ma xml, j'ai des valeurs qui se distinguent par appartement id=1 et id=2. XSLT me sert à la mise en forme

En gros, j'aimerais pouvoir dire à arcade.php de n'afficher que les valeurs de id=1 et sierra.php de n'afficher que les valeurs de id=2

Je pourrais le faire en créant une xml/xsl par appart mais ça me semble être un chemin un peu long. Il doit bien y avoir un moyen de filtrer l'info...

Version abrégée de mon code:

XML: (location.xml)
<?xml version="1.0" encoding="ISO-8859-1"?>

<location>

	<appartement id="1">
		<nom>Arcade</nom>
		<etoiles><etoiles4.gif /></etoiles>
	</appartement>
	
	<appartement id="2">
		<nom>Sierra</nom>
		<etoiles><etoiles3.gif /></etoiles>
	</appartement>
</location>


XSL: (intro_appart.xsl)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1"/>
<xsl:template match="/">

<div class="section_nom_app"><xsl:value-of select="nom"/><img>
        <xsl:attribute name="src"><xsl:value-of select="etoiles"/></xsl:attribute></img>

</xsl:template>
</xsl:stylesheet>



PHP: (sierra.php)
  <?php
$mm_xsl = new MM_XSLTransform();
$mm_xsl->setXML("location.xml");
$mm_xsl->setXSL("intro_appart.xsl");
echo $mm_xsl->Transform();
?>


Merci de me renseigner par un indice svp, :roll:
Bonjour,

En préambule je fais part de mon étonnement du fait que tu imagines constituer un fichier php par appartement.

Ceci dit si c'est bien le cahier des charges, il te suffit de passer un paramètre (le nom, l'id, ou n'importe quoi d'autre qui identifie l'appart) à la transformation XSLT (avec xsl:param), puis dans ton template tu exploites ce paramètre pour selection l'élément (l'appart) qui convient.
bonjour (ehhh soir)

en complément à Xavier , à voir aussi la méthode generate-id() qui crée un identifiant unique au(x) noeuds d'un document Xml, ou bien encore la fonction
(méthode) key() qui permet d'associer un index et un noeud (ou ensemble de noeud)


<immeuble>
   <appart id="10">
       ......
   </appart>
  <appart id="11">
   .......
  </appart>
...
</immeuble>
<!-- avec une utilisation XSLT -->
<xsl:template match=" expression Xpath">
   <h2><xsl:value-of select="key('appart',@id)"/>
 ........
</xsl:template>

Bonjour à vous et merci pour votre aide.

Donc dans mon XSL je mets à peu près ceci:

<!-- avec une utilisation XSLT -->

<xsl:template match=" expression Xpath">

   <h2><xsl:value-of select="key('appart',@id)"/>

 ........

</xsl:template>


Un truc que je ne saisis pas. Comment je fais pour que... Quand je tapes l'adresse url de l'appart 10, c'est bien l'appart 10 qui apparaisse?
Idéalement le lien serait http://www.exemple.com/sierra (son nom)
a écrit :

Quand je tapes l'adresse url de l'appart 10, c'est bien l'appart 10 qui apparaisse?


par exemple , en mettant l'identifiant en tant que valeur de la variable $_GET :
<a href="........../apppartements?id=10">



a écrit :

paricitas a écrit
En gros, j'aimerais pouvoir dire à arcade.php de n'afficher que les valeurs de id=1 et sierra.php de n'afficher que les valeurs de id=2


je ne saisi pas exactement ce que tu desires faire , mais je pense que tu dois faire quelques test avec les différentes manières que l'on t'as proposées (voir par rapport à ton "plan de travail" ou brouillon) et voir le mieux adapté

En ce qui concerne la mise en place des méthodes dans ton code , il y a
Transformations XSL (XSLT) recommandation du W3C , et un recherche "google" xslt + key() te donneraont tous les exemples nécessaires à la compréhension de son utilisation

bon courage