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 :

[XSLT] stocker des balises SVG dans un fichier XML et les afficher en XSLT


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Points : 20
    Points
    20
    Par défaut [XSLT] stocker des balises SVG dans un fichier XML et les afficher en XSLT
    Bonjour bonsoir, derriere ce long titre ce cache une question simple en fait

    j'aimerai savoir si il est possible de stocker des balise SVG dans un fichier XML par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet href="Svg.xsl" type="text/xsl" ?>
    <codesvg>
    <rect x="255" y="403" width="25" height="25" stroke="white" fill="blue"/>
    <text x="200" y="400" font-size="28" font-weight="bold" font-family="Arial" style="bold" fill="white">Test SVG</text>
    </codesvg>
    et de le faire afficher a l'aide d'une feuille de style SVG ?
    du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?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="/" xmlns:dyn="http://exslt.org/dynamic">
    <svg>
      <xsl:apply-template select="*"> 
    </svg>
    </xsl:template>
     
    <xsl:template match="*" >
       <xsl:value-of select="." />
    </xsl:template>
    voila j'aimerai savoir comment faire car ca marche pas comme ca

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Un document XML doit avoir une racine et ce n'est pas le cas du fichier où vous stockez les éléments SVG !

    Quant à la transformation sur le client, cela pourrait dépendre du navigateur et de son support de SVG... Lequel est à utiliser ?
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par alain.couthures
    Un document XML doit avoir une racine et ce n'est pas le cas du fichier où vous stockez les éléments SVG !

    Quant à la transformation sur le client, cela pourrait dépendre du navigateur et de son support de SVG... Lequel est à utiliser ?
    j'ai corrigé, désolé j'ai ecris ca rapidement hier soir, j'ai pas fait attention.

    Pour la tranformation, firefox gere correctement le SVG de base et pour IE on a le plugin adobe donc pas de probleme au niveau du navigateur je crois que c'est surtout au niveau XSL

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Peux-tu donner un exemple concret de ce qui coince ???
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Ben par exemple le <xsl:value-of select="." /> va rien me renvoyer car la balise est vide <rect .... />
    si jamais j'avais <xsl:value-of select="name()" /> j'aurai "rect" normal quoi.

    Or ce que je voudrai c'est recuperer carrement toute la balise
    <expression xsl /> ->renvoie-> <rect x="255" y="403" width="25" height="25" stroke="white" fill="blue"/>

  6. #6
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Il faut faire une transformation de type "identité" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <xsl:stylesheet version="1.0" txs:name="id_svg">
      <xsl:template match="/" xmlns:dyn="http://exslt.org/dynamic">
       <svg>
        <xsl:apply-templates select="*/*"/> 
       </svg>
      </xsl:template>
      <xsl:template match="@*|node()">
       <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
       </xsl:copy>
      </xsl:template>
     </xsl:stylesheet>
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    bon alors ca marche presque, je te remerci mais j'ai une derniere question

    donc pur resumer grace au fichier xml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet href="Svg.xsl" type="text/xsl" ?>
    <codesvg xmlns="http://www.w3.org/2000/svg">
    <rect x="255" y="403" width="25" height="25" stroke="black" fill="blue"/>
    <text x="200" y="400" font-size="28" font-weight="bold" font-family="Arial" style="bold" fill="black">Test SVG</text>
    </codesvg>
    et la feuille de style :
    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
    23
    24
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:dyn="http://exslt.org/dynamic"
                    extension-element-prefixes="dyn">
     
    <xsl:output method="xml" indent="yes" encoding="ISO-8859-1"
    doctype-public="-//W3C//DTD SVG 20001102//EN"
    doctype-system="http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"/>
     
      <xsl:template match="/" xmlns:dyn="http://exslt.org/dynamic">
       <svg xmlns="http://www.w3.org/2000/svg" xmlns:link="http://www.w3.org/1999/xlink" >
        <xsl:apply-templates select="*/*"/>
       </svg>
      </xsl:template>
     
      <xsl:template match="@*|node()">
       <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
       </xsl:copy>
      </xsl:template>
     
    </xsl:stylesheet>
    j'obtiens un fichier SVG :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:link="http://www.w3.org/1999/xlink">
      <rect xmlns="" x="255" y="403" width="25" height="25" stroke="black" fill="blue"/>
      <text xmlns="" x="200" y="400" font-size="28" font-weight="bold" font-family="Arial" style="bold" fill="black">Test SVG</text>
    </svg>
    donc quasi nikel mis a part qu'apparait un attribut xmlns="" a l'interieur dans les balises qui pose probleme, est il possible de filtrer ca ou alors qu'est ce que j'ai ecris qui genere ca?

    merci en tout cas

  8. #8
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Essaye en rajoutant exclude-result-prefixes="#default" à la racine de la feuille de style... mais ce n'est pas bien que la transformation rajoute un attribut vide car c'est défendu !?

    Quel est le moteur utilisé pour la transformation ?

    En faisant une petite recherche sur Internet, il y a une autre piste : rajouter xmlns="http://www.w3.org/2000/svg" à la racine de la feuille de style... et probablement aussi dans le XML source !

    Décidément les namespaces sont impardonnables !
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Effectivement c'etait bien la deuxieme solution il manque la declaration dans le fichier XML, j'edite mon post au dessus, ca resservira peut a quelqu'un

    merci a toi en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] [Débutant]Comment ajouter des balise html dans un fichier XML
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/09/2010, 14h36
  2. Insérer des balises html dans un fichier xml
    Par Abac_Angelique dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 29/04/2009, 17h41
  3. [XSLT] inclure des balises html dans xml
    Par paty03 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 25/02/2008, 14h13
  4. [XSLT] Utiliser des balises XHTML dans un fichier XML
    Par zoubidaman dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 20/03/2007, 14h30
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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