读取xml文件并使用java进行求和

时间:2017-04-27 01:44:41

标签: java xml

我是java和xml的新手。我试图找到一种方法来计算金额的总和,但我不知道如何做到这一点。我已经尝试了几件事,但它没有用。非常感谢你的帮助。

for (int i = 0; i < clients.getLength(); i++) {
    Element client = (Element) clients.item(i);
    String name = client.getAttribute("name");
    NodeList transactions = client.getElementsByTagName("transaction");

    for(int j=0; j<transactions.getLength(); j++) {
            Element transaction = (Element) transactions.item(j);
            int amount = Integer.parseInt(transaction.getAttribute("amount"));

    }

    System.out.println("Client name : " +name);
    System.out.println("Sum : " );
}

2 个答案:

答案 0 :(得分:0)

试试这个

   for (int i = 0; i < clients.getLength(); i++) {
    Element client = (Element) clients.item(i);
    String name = client.getAttribute("name");
    NodeList transactions = client.getElementsByTagName("transaction");
     int sum =0;
    for(int j=0; j<transactions.getLength(); j++) {
            Element transaction = (Element) transactions.item(j);
            sum = sum + Integer.parseInt(transaction.getAttribute("amount"));

    }

    System.out.println("Client name : " +name);
    System.out.println("Sum : " + sum );
}

答案 1 :(得分:0)

使用XPath这种事情要容易得多(即使你必须使用Java和DOM,你可能不会这样做。)

XPath xpath = XPathFactory.newInstance().newXPath();
for (int i = 0; i < clients.getLength(); i++) {
    Element client = (Element) clients.item(i);
    int sum = (int)xpath.evaluate("sum(transaction/@amount)", 
                  client, XPathConstants.NUMBER);    
    System.out.println("Client name : " + client.getAttribute("name"));
    System.out.println("Sum : " + sum );
}