使用DOM将Java中的属性从XML求和

使用DOM将Java中的属性从XML求和,java,xml,dom,sum,attributes,Java,Xml,Dom,Sum,Attributes,我有这个XML文档,我正在编写一个Java代码来对文档进行一些操作: <?xml version="1.0" encoding="ISO-8859-1"?> <list> <client name="Bob"> <transaction amount="100"/> <transaction amount="150"/> </cli

我有这个XML文档,我正在编写一个Java代码来对文档进行一些操作:

<?xml version="1.0" encoding="ISO-8859-1"?>
<list>
<client name="Bob">
<transaction amount="100"/>
<transaction amount="150"/>
</client>
<client name="Ruth">
<transaction amount="100"/>
<transaction amount="150"/>
<transaction amount="100"/>
</client>
</list>

我想将两位客户的所有金额相加,得出以下结果:

鲍勃:250 露丝:350

目前,我已经编写了以下代码:

NodeList nl = racine.getElementsByTagName("client");
NodeList mn = doc.getElementsByTagName("transaction");
int somme=0; 
    
    
for(int i=0; i<mn.getLength(); i++) {
            
Element transaction = (Element)mn.item(i);
Element client = (Element) nl.item(i);
NodeList nameslist = client.getElementsByTagName("name");
Element nom = (Element) nameslist.item(i);
    
            
int montant = Integer.parseInt(transaction.getAttribute("amount"));
total+=amount; 
System.out.println("Name: " + client.getAttribute("name") + total)
NodeList nl=racine.getElementsByTagName(“客户端”);
NodeList mn=doc.getElementsByTagName(“事务”);
int-somme=0;
对于(int i=0;i
NodeList客户端NodeList=doc.getElementsByTagName(“客户端”);
for(int i=0;i
下面是一段简单的代码,您所做的错误是您还需要迭代客户端节点列表以获得事务节点列表

    NodeList clientNodeList = doc.getElementsByTagName("client");

    for (int i = 0; i < clientNodeList.getLength(); i++) {
        Element client = (Element) clientNodeList.item(i);
        System.out.println(client.getNodeName() + ": " +  client.getAttribute("name"));

        NodeList transactionNodeList = client.getElementsByTagName("transaction");

        int total = 0;
        for (int j = 0; j < transactionNodeList.getLength(); j++) {
            Element transaction = (Element) transactionNodeList.item(j);
            int amount = Integer.valueOf(transaction.getAttribute("amount"));
            total += amount;
        }
        System.out.println("Total: " + total);
    }