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

Format d'échange (XML, JSON...) Java Discussion :

[SVG] Problème de code Java ? [XSLT]


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut [SVG] Problème de code Java ?
    Bonjour,

    J'ai un fichier XML que je voudrai transformer grâce à XSLT et j'ai pour cela suivi la FAQ correspondante.

    Malgré tout, mon fichier de sortie ne contient qu'une seule ligne à la fin de la transformation et après plusieurs tests, j'en suis arrivée à la conclusion que mon problème devait se situer au niveau de mon code java, le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private void convertXML(String xml) throws TransformerException {
     
    	File file = new File("resultat.xml");
    	StreamResult xmlresult = new StreamResult(file);
     
    	Source xmlsource = new StreamSource(new StringReader(xml));
     
    	TransformerFactory xsltfactory = TransformerFactory.newInstance();
    	Transformer xsltengine = xsltfactory.newTransformer(new StreamSource(new File("transfo.xsl")));
     
    	xsltengine.transform(xmlsource,xmlresult);
     
    }
    Quand à mon fichier resultat.xml il contient seulement cette ligne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml version="1.0" encoding="UTF-8"?>
    Quelqu'un aurait-il une idée ?

    Merci !

  2. #2
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Ah oui si j'ai mis SVG en tag c'est parce qu'une fois que j'aurai trouvé le problème, mon fichier de sortie sera un SVG (mais je ne pense pas que cela change grand chose puisque déjà comme ça je n'obtiens rien)

  3. #3
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Et encore au cas où ce serait mon fichier xsl qui serait mauvais je le mets aussi tant qu'à faire si ça peut vous donner des idées

    Merci bien !

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:svg="http://www.w3.org/2000/svg">
     
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
    	<xsl:variable name="case-width">100</xsl:variable>
    	<xsl:variable name="case-height">30</xsl:variable>
    	<xsl:variable name="font-size">20</xsl:variable>
     
    	<xsl:template match="/process-definition">
    		<svg width="800px" height="600px">
    			<!-- definition du triangle pour la fleche //-->
    			<defs>
    				<marker id="Triangle" 
    					viewBox="0 0 10 10" refX="0" refY="5" 
    					markerUnits="strokeWidth" 
    					markerWidth="12" markerHeight="9" 
    					orient="auto">
    					<path d="M 0 0 L 10 5 L 0 10 z" />
    				</marker>
    			</defs>		
    			<rect x="1" y="1" width="798" height="598" fill="#F0F0FF" stroke="blue" stroke-width="2" />		
    			<xsl:apply-templates select="start-state" />
    			<xsl:apply-templates select="end-state" />			
    		</svg>
    	</xsl:template>	
     
    	<xsl:template match="start-state">
    		<xsl:variable name="start-posx">400</xsl:variable>
    		<xsl:variable name="start-posy">100</xsl:variable>		
    		<xsl:for-each select="transition">
    			<xsl:call-template select="transition" />
    		</xsl:for-each>		
    		<rect x="{$start-posx+-0.5*$case-width}" y="{$start-posy+-0.5*$case-height}" width="{$case-width}" height="{$case-height}" rx="5" fill="blue" />		
    		<text x="{$start-posx}" y="{$start-posy+0.25*$font-size}" font-family="Verdana" font-size="{$font-size}" fill="white" text-anchor="middle">
    			<xsl:value-of select="./@name" />
    		</text>		
    	</xsl:template>	
     
    	<xsl:template match="end-state">	
    		<xsl:variable name="end-posx">400</xsl:variable>
    		<xsl:variable name="end-posy">200</xsl:variable>		
    		<rect x="{$end-posx+-0.5*$case-width}" y="{$end-posy+-0.5*$case-height}" width="{$case-width}" height="{$case-height}" rx="5" fill="blue" />		
    		<text x="{$end-posx}" y="{$end-posy+0.25*$font-size}" font-family="Verdana" font-size="{$font-size}" fill="white" text-anchor="middle">
    			<xsl:value-of select="./@name" />
    		</text>		
    	</xsl:template>
     
    	<xsl:template match="transition">
     
    		<!-- dessin des fleches //-->
    		<xsl:variable name="transition-name"><xsl:value-of select="./@name" /></xsl:variable>
    		<xsl:variable name="transition-to"><xsl:value-of select="./@to" /></xsl:variable>
     
    		<!-- dessin de la fleche sortante //-->
     
    		<xsl:variable name="xstart">400</xsl:variable>
    		<xsl:variable name="ystart">100</xsl:variable>
    		<xsl:variable name="xend">400</xsl:variable>
    		<xsl:variable name="yend">200</xsl:variable>
     
    		<polyline fill="none" stroke="black" stroke-width="2" 
    			points="{$xend},{$yend}
    			{0.5*$xend+0.5*$xstart},{0.5*$yend+0.5*$ystart}
    			{$xstart},{$ystart}" 
    			marker-mid="url(#Triangle)" />
     
    		<!-- fin du dessin des fleches //-->
     
    	</xsl:template>
     
    </xsl:stylesheet>

  4. #4
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Ne contient qu'une seule ligne ? Tu veux dire qu'il n'y a pas de retour chariot, ou bien que ton xsl ne crache que la première ligne ?
    Au fait, je crois qu'il te manque ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    transformer.setOutputProperty(OutputKeys.METHOD, "text");
    dans ton code

  5. #5
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Ben en fait quand je dis que je n'obtiens qu'une ligne c'est dans mon fichier de sortie, le resultat.xml et je ne sais pas à quoi c'est dû, si c'est à cause de mon xsl ou à cause de mon code...

    Quand je rajoute ta ligne de code, y a carrément plus rien qui s'affiche

    Merci de m'aider en tout cas

  6. #6
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Dans ton fichier de sortie :
    Tu as tout sur une seule ligne ?
    Ou
    Tu n'as que la première ligne ?

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

Discussions similaires

  1. Probléme avec iReport + java code à barre vide
    Par youssef_rjili dans le forum iReport
    Réponses: 0
    Dernier message: 13/07/2012, 17h18
  2. Problème de code en Java
    Par felixismad dans le forum NetBeans
    Réponses: 6
    Dernier message: 13/11/2011, 13h30
  3. problème génération de Java Code from wsdl
    Par hassen07 dans le forum Services Web
    Réponses: 0
    Dernier message: 03/02/2010, 18h02
  4. probléme avec mon code JAVA et MYSQL
    Par ulysse031 dans le forum JDBC
    Réponses: 5
    Dernier message: 10/05/2007, 00h46
  5. Réponses: 1
    Dernier message: 09/03/2007, 14h40

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