gpt4 book ai didi

java - XPathExpression 无法对数字求和

转载 作者:行者123 更新时间:2023-11-30 02:21:19 26 4
gpt4 key购买 nike

我解析 XML 并使用 XPath 想要计算总和。

我尝试:

long resultSum = 0L;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(getOutputFileName());
XPathFactory xPathFactory = XPathFactory.newInstance();
XPath xPath = xPathFactory.newXPath();
String xPathExpression = "sum(//entries//entry/@field)";
XPathExpression expr = xPath.compile(xPathExpression);
resultSum = (Long) expr.evaluate(doc, XPathConstants.NUMBER);

但是,我有错误:

Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Long

在这一行中:

resultSum = (Long) expr.evaluate(doc, XPathConstants.NUMBER);

为什么会发生这种情况?

最佳答案

XPathConstants.NUMBER 计算结果为 Double,为了将其结果分配给 Long,您需要执行以下操作:

resultSum = ((Double) expr.evaluate(doc, XPathConstants.NUMBER)).longValue();

关于java - XPathExpression 无法对数字求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com