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] Xml vers SVG


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 22
    Par défaut [XSLT] Xml vers SVG
    Bonjour j'ai le fichier xml ci-dessous
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <public_tdt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     
    <tdt>
    <id>22393</id>
    <dateheure>2004-12-26T00:58:50</dateheure>
    <profondeur>10</profondeur>
    <magnitude>8.9</magnitude>
    <latitude>3.3</latitude>
    <longitude>95.78</longitude>
    <pt>(95.7799987792969,3.29999995231628)</pt>
    <geom>0101000020E610000052B81E85EBF157406666666666660A40</geom>
    </tdt>
    <tdt>

    et je voudrais obtenir un svg représentant les latitudes et longitudes de mes tdt, comment le faire s'il vous plait?

    Merci d'avance pour vos reponses.

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut Transformation xml vers svg avec xslt
    Bonjour,

    tu as le fichier xml, il te reste donc à trouver un programme, comme saxon par exemple, et ta feuille de style toSvg.xsl.

    Ton fichier xsl devrait ressembler à qlqch comme ca :

    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"?>
     
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
      <xsl:output method="xml" indent="yes"
        doctype-public="-//W3C//DTD SVG 20010904//EN"
        doctype-system="~http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"/>
     
      <xsl:template match="/">
        <svg width="XXX" height="YYY">
          <xsl:apply-templates/>
        </svg>
      </xsl:template>
     
      <xsl:template match="tdt">
        <g><xsl:apply-templates/></g>
     </xsl:template>
     
     <xsl:template match="latitude | longitude">   
            <text><xsl:value-of select="."/></text>       
     </xsl:template>
     
    </xsl:stylesheet>
    Ensuite :

    saxon source.xml toSvg.xsl > out.svg

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 22
    Par défaut xml à svg via xml
    Merci polymorphisme

    Mais je voudrais avoir une représentation des points de chaque tdt sur une carte du monde par exemple
    Je m'explique,
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="latitude | longitude">
    	<xsl:element name="svg:circle">
    		<xsl:attribute name="cx">
    		<xsl:number value="@longitude*2+360" />
    		</xsl:attribute>
    		<xsl:attribute name="cy">
    			<xsl:number value="@latitude*2+180" />
    		</xsl:attribute>
    mai en faisant ceci j'ai
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <svg:circle xmlns:svg="http://www.w3.org/2000/svg" cx="NaN" cy="NaN" r="10"

    cx et cy ne recupere aucune valeur
    Merci d'avance pour l'aide que vous pouvez me donner

  4. #4
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    A cette balise :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <svg:circle xmlns:svg="http://www.w3.org/2000/svg" cx="NaN" cy="NaN" r="10"

    tu peux supprimer l'espace de nom http://www.w3.org/2000/svg en ajoutant le couple attribut/valeur exclude-result-prefixes="svg" à ta balise xsl:stylesheet,
    ca fera plus propre et c'est plus lisible

    ensuite, avec <xsl:number value="@longitude*2+360" />, tu demande la valeur numérique de l'attribut longitude du noeud courant, à savoir longitude ou latitude. Ces noeuds n'ont pas d'attributs, donc ton processeur xslt retourne la valeur NotANumber. Le processeur ne fait que ce qu'on l'on lui demande (comme c'est enrageant

    Dans ta template avec le XPath "latitude | longitude", la valeur du noeud courant est ".". Essaye la template suivante :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <xsl:template match="latitude | longitude">
    <xsl:element name="svg:circle">
    <xsl:attribute name="latitude ">
    <xsl:value-of value="." />
    </xsl:attribute>
    <xsl:attribute name="longitude">
    <xsl:value-of value="." />
    </xsl:attribute>
    ...
    <xsl:template>

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 22
    Par défaut
    en faisant comme proposé j'ai cette erreur: unexpected attribute "value"

    sur la même lancé comment puis je superposer ces informations sur la carte du monde s'il vous plait toujours avec le fichier xsl?

  6. #6
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut Une faute de syntaxe ...
    Oui, j'ai fait une faute de syntaxe

    Il faut remplacer <xsl:value-of value="." /> par
    <xsl:value-of select="."/>

    Pour mettre une image, voici un exemple :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      <image x="200" y="200" width="100px" height="100px"
             xlink:href="myimage.png">
        <title>My image</title>
      </image>


    Les spécifications du svg :
    http://www.w3.org/Graphics/SVG/

    Les spécifications de xslt
    http://www.w3.org/Style/XSL/

    Et des exemples :
    http://www.w3schools.com/svg/svg_examples.asp
    http://www.carto.net/svg/samples/xslt/

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

Discussions similaires

  1. [XSLT] XML vers XML
    Par cydream dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/04/2007, 17h45
  2. [XSLT] XML vers HTML
    Par SONY30 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/04/2007, 08h54
  3. [XSLT] GraphML vers SVG
    Par Nyphel dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/02/2007, 00h52
  4. [XSLT]XML vers tableau html
    Par lcdDEV dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/10/2006, 16h55
  5. [XSLT] XML vers XML
    Par ren0 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/10/2004, 12h54

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