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