使用DOM将Java中的属性从XML求和
我有这个XML文档,我正在编写一个Java代码来对文档进行一些操作:使用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 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;iNodeList客户端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);
}