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 et règles


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut XSLT et règles
    Je cherche à faire une conversion XSLT avec jaxp et xalan.
    Je n'arrive pas à trouver comment la faire à partir de plus de 2 fichiers.
    C'est à dire, j'ai un fichier .XLS un fichier .XML de "règles" et le fichier des données.
    Je n'ai pas trouvé le moyen de faire passer ses "règles" qui sont indispenssable à la conversion.
    J'ai beau chercher je trouve pas d'exemple.
    J'ai par contre parfaitement reussi la conversion avec un autre outils mais il me faut en java... J'aime le java .

    Code la méthode standard de transformation : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static void transforme(String ficherXML, String fichierXSLT) throws Exception {
            TransformerFactory fabrique;
            StreamSource xml;
            StreamSource xslt;
            StreamResult dest;
            Transformer transformation;
            fabrique = TransformerFactory.newInstance();
            xml = new StreamSource(new File(ficherXML));
            xslt = new StreamSource(new File(fichierXSLT));
            transformation = fabrique.newTransformer(xslt);
            File sortie = new File("sortie.svg");
            dest = new StreamResult(new FileOutputStream(sortie));
            transformation.transform(xml, dest);
        }

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par dawadam Voir le message
    C'est à dire, j'ai un fichier .XLS un fichier .XML de "règles" et le fichier des données.
    Je n'ai pas trouvé le moyen de faire passer ses "règles" qui sont indispenssable à la conversion.
    C'est-à-dire ? Quelle technologie lie ces "règles" à XSLT ?

    Citation Envoyé par dawadam Voir le message
    J'ai par contre parfaitement reussi la conversion avec un autre outils mais il me faut en java... J'aime le java .
    Comment as-tu fait avec les autres outils ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est-à-dire ? Quelle technologie lie ces "règles" à XSLT ?
    Je ne connais que la base du XML.
    Je peut juste dire que ces règles, sont un fichier .xml avec la balise racine "rules" et pleins d'enfants et des sous-enfants "rule".

    Code exemple : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <rule e="way" k="highway" v="path|footway">
     
    			<rule e="way" k="sac_scale" v="hiking|t1|T1">
     
    				<line class="sac-scale-t1" smart-linecap="no"/>
     
    			</rule>
     
    			<rule e="way" k="sac_scale" v="mountain_hiking|t2|T2">
     
    				<line class="sac-scale-t2" smart-linecap="no"/>
     
    			</rule>
     
    			<rule e="way" k="sac_scale" v="demanding_mountain_hiking|t3|T3">
     
    				<line class="sac-scale-t3" smart-linecap="no"/>
     
    			</rule>
     
    			<rule e="way" k="sac_scale" v="alpine_hiking|t4|T4">
     
    				<line class="sac-scale-t4" smart-linecap="no"/>
     
    			</rule>
     
    			<rule e="way" k="sac_scale" v="demanding_alpine_hiking|t5|T5">
     
    				<line class="sac-scale-t5" smart-linecap="no"/>
     
    			</rule>
     
    			<rule e="way" k="sac_scale" v="difficult_alpine_hiking|t6|T6">
     
    				<line class="sac-scale-t6" smart-linecap="no"/>
     
    			</rule>
     
    		</rule>

    Citation Envoyé par thelvin Voir le message
    Comment as-tu fait avec les autres outils ?
    En fait, j'ai utilisé xsltproc, outil en ligne de command sous linux, qui lui semble accepter mon fichier de règles.

    Code utilisation de xsltproc : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/bin/xsltproc  --stringparam osmfile /home/osmarender/xslt/data.osm ./xslt/osmarender.xsl ./stylesheets/osm-map-features-z17.xml

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Ce fichier .xml de "rules" serait-il référencé dans le fichier "./xslt/osmarender.xsl"?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Citation Envoyé par Morbo Voir le message
    Ce fichier .xml de "rules" serait-il référencé dans le fichier "./xslt/osmarender.xsl"?
    non par contre le fichier .xsl est référencé dans celui des "rules"
    Code entete de osm-map-features.xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="osmarender.xsl"?>

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    A priori, pour faire la même chose que l'option "--stringparam" de XSLT, il faut ajouter la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    transformation.setParameter("osmfile", "/home/osmarender/xslt/data.osm");
    avant d'appeler transformation.transform(). Il s'agit de définir un paramètre "osmfile" déclaré quelque part dans la feuille XSLT.
    Pour être honnête cela me surprend un peu, mais n'est pas impossible avec un xPath du genre document($osmfile)//rule
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Après réflexion en comparaison à la commande xsltproc, j'ai pu ajouter le paramettre osmfile que je n'utilisais pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Transformer transformation = fabrique.newTransformer(xslt);
    transformation.setParameter("osmfile", "/home/map.osm");
    J'ai donc une config identique à celle de la commande xsltproc.
    Seulement j'obtient un resultat vide, la taille de l'image SVG est correct mais il n'y à qu'un carré blanc.
    J'obtient aussi, pendant l'execution plusieurs messages de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    file:/home/osmarender/xslt/osmarender.xsl; Ligne #3561; Colonne #24;
    Processing <rule e="node|way" k="osmarender:render" v="~|yes" >
    Je suis perplexe

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/10/2014, 09h43
  2. Réponses: 6
    Dernier message: 01/06/2010, 15h59
  3. Obligatoire : lisez les règles du forum : MAJ 06/08/2010
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 03/07/2008, 13h46
  4. Réponses: 3
    Dernier message: 06/09/2007, 14h31
  5. [XSLT] Règle par défaut
    Par pierrelm dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/04/2007, 11h50

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