我的输入是一个xpath,指向一个具有我要求和的值的节点。
XPathExpression expr = xpath.compile("XML/Cat/Item/Cost");
NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
<XML>
<Cat>
<Item>
<Cost>12</Cost>
</Item>
<Item>
<Cost>10</Cost>
</Item>
</Cat>
<Cat>
<Item>
<Cost>4</Cost>
</Item>
<Item>
<Cost>3.2</Cost>
</Item>
<Item>
<Cost>8.2</Cost>
</Item>
</Cat>
</XML>
NodeList包含我可以求和的所有值,但我想按<cat>
部分求和
12 + 10
4 + 3.2 + 8.2
可以使用dom和xpath实现吗?
答案 0 :(得分:-1)
XPath只返回从它选择的文档中获取的原子值(数字,布尔值或字符串)或节点集。
这里你想要的不是一个原子价值(你想要几个总和,而不是一个)。并且它不是XML文档中已经存在的东西(XML文档不包含总和)。
所以不,只使用XPath是不可能的。
您需要遍历所有<Cat>
个元素,并且每个元素都使用XPath表达式计算总和。