You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java程序计算XML中price标签的数值总和?

修改Java DOM解析代码实现所有值求和

问题说明

你原来的DOM解析代码只获取了第一个<price>节点的值,要计算所有price的总和(目标结果150),只需要遍历所有<price>节点并累加数值即可。

示例XML结构

假设你的XML数据结构如下:

<products>
  <product>
    <name>商品A</name>
    <price>50</price>
  </product>
  <product>
    <name>商品B</name>
    <price>60</price>
  </product>
  <product>
    <name>商品C</name>
    <price>40</price>
  </product>
</products>

修改后的Java DOM解析代码

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;

public class PriceSumCalculator {
    public static void main(String[] args) {
        try {
            // 初始化DOM解析工厂与解析器
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            // 替换为你的XML文件路径或输入流
            Document doc = builder.parse(new File("products.xml"));

            // 获取所有<price>节点的集合
            NodeList priceNodes = doc.getElementsByTagName("price");
            int totalSum = 0;

            // 遍历每个price节点,累加数值
            for (int i = 0; i < priceNodes.getLength(); i++) {
                Element priceElement = (Element) priceNodes.item(i);
                // 提取节点文本并转为整数,注意trim处理空白字符
                int price = Integer.parseInt(priceElement.getTextContent().trim());
                totalSum += price;
            }

            System.out.println("所有price值的总和:" + totalSum); // 预期输出150
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

关键修改点

  • 不再只取第一个<price>节点(item(0)),而是通过for循环遍历整个NodeList集合
  • 每次循环提取当前<price>节点的文本内容,转为数值后累加到总和变量中
  • 加入trim()处理,避免节点文本中的空白字符影响数值解析

关于你法语提问的回答

当然可以对已提取的price值进行求和,上面的代码正是先提取所有price值,再逐个累加计算总和的实现方式。

内容的提问来源于stack exchange,提问作者david9999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:15:27