Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > XSL & XSLT
XSL & XSLT Forum d'entraide pour les extensions XSL et XSLT permettant de manipuler vos documents XML à l'aide de feuilles de style et de transformations avec PHP. Avant de poster -> tutoriels XSL et XSLT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2007, 17h23   #1
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
Par défaut [XSL] Transformer à partir d'un autre noeud que le document

Bonjour,

Je cherche à appliquer une feuille de style que sur une partie d'un document xml et non sur le document xml entier. Autrement dit, ne pas partir de la même racine. Mon application utilise le module XSL de PHP.

Citation:
Envoyé par Manuel PHP, fonction XSLTProcessor::transformToXML
Transforme le noeud source en une chaîne en y appliquant une feuille de style donnée par la méthode XSLTProcessor::importStylesheet.
On peut donner un noeud XML à la fonction transformToXML. Seulement, quelque soit le noeud donné, la fonction retourne la transformation du document complet et non seulement du noeud XML.

Comment résoudre ce problème ?


Blustuff.
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 10h52   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

Citation:
Envoyé par Blustuff
Comment résoudre ce problème ?
Ca devrait pouvoir se régler facilement en écrivant le bon code XSLT, et au besoin en passant au processeur XSLT un paramètre qui permet de filtrer le sous-arbre à traiter.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 16h46   #3
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
Ca me paraît étrange mais pourquoi pas. Un paramètre de type noeud ? Une chaine qui a un sens aux yeux de XPath ?
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2007, 16h37   #4
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
Après de longs et fastidieux tests, j'ai finalement réussi dans cette voie :
  • Le script php insère des attributs définis dans une DTD comme unique, sur des éléments judicieux
  • Ensuite, avec DOMDocument::validate, on doit obliger le logiciel à prendre en compte ces identifiants uniques, je pense
  • Enfin, on passe un paramètre au XSL ayant pour valeur l'id du noeud à partir duquel on veut commencer la transformation

Effectivement, les modifications sur le XSL étaient mineures, mais il fallait écrire une DTD, ce dont j'aurais préféré être épargné...

Merci pour votre aide !


Blustuff.
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h53.


 
 
 
 
Partenaires

Hébergement Web