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

XML/XSL et SOAP Discussion :

Reprise d'une application DOM en XSLT


Sujet :

XML/XSL et SOAP

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Points : 218
    Points
    218
    Par défaut Reprise d'une application DOM en XSLT
    Bonjour à tous,
    j'aimerais savoir à quoi ressemblerait le code en xslt qui puisse obtenir le même résultat que celui-ci en java.
    Merci d'avance pour vos réponses.

    Code xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="ISO-8859-1" ?>
       <liste> 
        <client nom="Jean Charles"> 
            <transaction montant="500" />
     <question>Quelle est la dernière marque?</question>
            <transaction montant="1200" /> 
         </client> 
         <client nom="Pierre Élisabeth"> 
            <transaction montant="600" /> 
            <transaction montant="800" /> 
     <question>Où puis-je trouver le modèle 2002?</question>
            <transaction montant="2000" /> 
         </client> 
        </liste>
    code java:
    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
    import org.w3c.dom.*;
     import javax.xml.parsers.*;
     
     public class Transactions {
     public static void main(String[] args) throws Exception {
        DocumentBuilderFactory factory =
         DocumentBuilderFactory.newInstance();
        DocumentBuilder parser =
         factory.newDocumentBuilder();
        Document doc = parser.parse(args[0]);
        Element racine = doc.getDocumentElement();
        NodeList clients = racine.getElementsByTagName("client");
     
    for (int i = 0; i < clients.getLength(); i++) {
    	Element client = (Element) clients.item(i);
    	String nom = client.getAttribute("nom");
     
    	NodeList transactions = client.getElementsByTagName("transaction");
    	int totalTrasactions = 0;
    	for(int j=0; j<transactions.getLength(); j++) {
    		try {
    			Element transaction = (Element) transactions.item(j);
    			int montant = Integer.parseInt(transaction.getAttribute("montant"));
    			totalTrasactions += montant;
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
     
    	System.out.println(nom+" : "+totalTrasactions);
    }
    }
    }
    Le résultat obtenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Nom du client: Jean Charles
     Somme: 1700
     Nom du client: Pierre Élisabeth
     Somme: 3400

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Voici ce qui ressemble en xslt.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:output method="text" encoding="iso-8859-1" omit-xml-declaration="yes" />
    <xsl:template match="/">
        <xsl:apply-templates select="//client" />
    </xsl:template>
    <xsl:template match="client">
        <xsl:text>Nom du client: </xsl:text>
        <xsl:value-of select="@nom" />
        <xsl:text>&#x0a;</xsl:text>
        <xsl:text>Somme: </xsl:text>
        <xsl:value-of select="sum(transaction/@montant)" />
        <xsl:text>&#x0a;</xsl:text>
    </xsl:template>

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Points : 218
    Points
    218
    Par défaut
    Ok merci Tsuji, ça m'a l'air plus simple quand même.
    Du coup selon toi, quel est l'avantage d'utiliser du xsl par rapport à l'application java?

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Points : 218
    Points
    218
    Par défaut
    Pas d'idées?
    Selon vous quel est l'avantage pour ce type d'application d'utiliser du xslt à la place d'une programmation java DOM ou l'inverse?

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/07/2015, 01h42
  2. [WD20] Reprise, modification d'une application déjà fonctionnelle
    Par JohnVist dans le forum WinDev
    Réponses: 14
    Dernier message: 04/03/2015, 12h18
  3. Reprise d'une ancienne application
    Par DotNET74 dans le forum Windows Phone
    Réponses: 3
    Dernier message: 28/01/2013, 20h57
  4. Reprise d'une application plug-in
    Par Dark_TeToN dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 14/04/2011, 17h18
  5. Reprise d'une application sous Eclipse
    Par david71 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 29/06/2009, 10h31

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