IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

XSL directement dans XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Ingénieur
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut XSL directement dans XML
    Bonjour,
    Alors ma question est relativement simple mais malgré de nombreuses recherches sur le web toujours pas réponse concrète.
    Ma demande est pourtant simple :
    Peut on intégrer une feuille de style type xsl directement dans le xml à mettre en forme.
    Je sais cela peut sembler hérétique mais la question est juste Possible ou Non

    Par avance merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 563
    Points : 21 627
    Points
    21 627
    Par défaut
    En fait ce n'est pas hérétique, il est même plus ou moins vaguement prévu que ça puisse se faire.

    Voir ici, chercher 2.7 Embedding Stylesheets

    Mais bon, c'est moyennement géré, et il faut s'emmerder à prévoir une DTD qui dit que <xsl:stylesheet> a un attribut id de type ID.

  3. #3
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 843
    Points
    4 843
    Par défaut
    Voilà un exemple de document qui le fait. Personnellement je m'en sers pour tester des XSL en ayant tout dans le même fichier (plus simple pour le test) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xml" href="#stylesheet"?>
    <!DOCTYPE test [
    <!ATTLIST xsl:stylesheet
      id	ID	#REQUIRED>
    ]>
     
    <test>
    	<contenu_xml>
    	</contenu_xml>
     
    	<xsl:stylesheet
    			id="stylesheet"
    			version="1.0"
    			xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    		<xsl:template match="xsl:stylesheet" />
     
    		<xsl:template match="/test">
    			<!-- Contenu du XSL -->
    		</xsl:template>
    	</xsl:stylesheet>
    </test>
    Comme l'a dit thelvin, il faut déclarer une DTD dans le document spécifiant que la balise stylesheet prend un attribut "id", renseigner cet id dans la balise et appeller le XSL avec pour href "#id".

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 563
    Points : 21 627
    Points
    21 627
    Par défaut
    'Tention, le doctype doit être avant la processing-instruction.

    (En fait, le doctype doit être après la déclaration XML, s'il y en a une, et avant tout le reste.)


    Edit : Totalement faux.

  5. #5
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 843
    Points
    4 843
    Par défaut
    Beuh chez moi ça marche.

    Enfin c'est avec Firefox et j'ai pu constater que si j'écrivais <!DOCTYPE toto au lieu de test (et en conservant <test> comme racine de mon XML) ça fonctionnait aussi.
    Donc je soupçonne FF d'être quelque peu laxiste sur la DTD (même s'il en tient compte quand même).

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 563
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 563
    Points : 21 627
    Points
    21 627
    Par défaut
    My bad, je me suis trompé.
    C'est mon parseur XML favori qui m'a mis dedans. Il a fait ses preuves, pourtant.

Discussions similaires

  1. Introduire lien html direct dans xml qui fonctionne.
    Par jarodrc dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 18/04/2011, 14h33
  2. [XSLT] XSL distant dans XML ou autre XSL
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/04/2010, 10h45
  3. [JDOM] Créer une variable xml directement dans java
    Par Tigrounette dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 18/12/2005, 14h21
  4. PHP dans XML ou XSL
    Par mathieu dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/08/2003, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo