edit:
Après avoir cogité la solution réside en un tout simple:
le code xsl:

<xsl:template match="*">
		<xsl:apply-templates select="*"/> 
</xsl:template>

Bonsoir,
Voila j'ai un petit problème en manipulant du xml par le biais de xsl en php.
J'ai un fichier "source.xml" qui contient les données du site
J'ai un fichier "page.xsl" qui formate les données pour une page définit
Le tout est unifié avec du php.
Le problème est que à la fin j'ai bien les données formaté, mais aussi le reste des données non utilisé du fichier "source.xml" qui s'affiche sur la page Smiley sweatdrop .
Voici mes sources:
le fichier xml
<?xml version="1.0" encoding="utf-8"?>
<pages>
	<page name="vel">
		<titre>ante</titre>
		<css>css/ante.css</css>
		<contenu>
			<bloc name="bloc1">
				Sono tabernis est 
				theatralium imae concrepantes
				quae sua per naribus praecipua delicta
				aurigarum pluviis quae.
			</bloc>
			<bloc name="bloc2">
				Iussisse quoque principes propositum in adulatorum
			</bloc>
		</contenu>
	</page>
	<page name="offensionibus">
		<titre>ipso</titre>
		<css>../css/ipso.css</css>
		<contenu>
			<bloc name="bloc1">
				Agens per Galli iam artissime 
				immodice Constantinopolim Apollinaris 
				socero Constantinopolim Armeniam numeros
				iam conpertis.
			</bloc>
			<bloc name="bloc2">
				Globis inter ardor quae ut
				recurvosque persultat et ardor ingenti inter et 
				missilibus et missilibus.
			</bloc>
		</contenu>
	</page>
</pages>

le fichier xsl (pour une page)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*" />
<xsl:output
	method="xml"
	version="1.0"
	encoding="utf-8"
	omit-xml-declaration="yes"
	doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
	doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
	indent="yes" />
<xsl:template match="pages/page[@name='offensionibus']">
	  <html>
		<head>
		  <title><xsl:value-of select="@name" /></title>
		  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		  <link rel="stylesheet" media="screen" type="text/css" href="{css}" />
		</head>
		<body>
			<h1>
				<xsl:value-of select="titre" />
			</h1>
			<p>
				<xsl:value-of select="contenu/bloc[@name='bloc1']" />
			</p>
		</body>
	  </html>
	</xsl:template>
</xsl:stylesheet>

le fichier php (une class)
<?php
class interprete
	{
		protected $docXml;
		protected $docXmlDom;
		protected $docXsl;
		protected $docXslDom;
		protected $trans;
		
		public function __construct($docXml , $docXsl){
			if(!file_exists($docXml)){
				exit('Le fichier "'.$docXml.'" n\'existe pas');
			}
			elseif(!file_exists($docXsl)){
				exit('Le fichier "'.$docXsl.'" n\'existe pas');
			}else{
				$this->docXml = $docXml;
				$this->docXsl = $docXsl;
				clearstatcache();
			}
		}
		
		public function constructionDom(){
			$this->docXmlDom = new DOMDocument;
			$this->docXslDom = new DOMDocument;
			$this->docXmlDom->load($this->docXml);
			$this->docXslDom->load($this->docXsl);
			if(is_object($this->docXslDom ) &&  is_object($this->docXmlDom )){
				return array(true, $this->docXslDom, $this->docXmlDom);
			}else{
				return false;
			}
		}
		
		public function association(){
			$checkVal = $this->constructionDom();
			$this->trans = new XSLTProcessor;
			if(is_object($this->trans) && $checkVal){
				$this->trans->importStyleSheet($this->docXslDom);
				return true;
			}
			else{
				return false;
			}
		}
		
		public function affichage(){
			if($this->association()){
				print $this->trans->transformToXml($this->docXmlDom);
			}else{
				exit('erreur');
			}
		}
	}
?>

Ce qui va donner dans ce cas là (j'ai mis en commentaire les données en trop):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--antecss/ante.css
				Sono tabernis est 
				theatralium imae concrepantes
				quae sua per naribus praecipua delicta
				aurigarum pluviis quae.
			
				Iussisse quoque principes propositum in adulatorum -->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>offensionibus</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" media="screen" type="text/css" href="../css/ipso.css" />
  </head>
  <body>
    <h1>ipso</h1>

         <p>
				Agens per Galli iam artissime 
				immodice Constantinopolim Apollinaris 
				socero Constantinopolim Armeniam numeros
				iam conpertis.
	</p>
  </body>
</html>

Modifié par astron (30 May 2010 - 09:10)