xPath - sum(//*)解释

Oni*_*ion 5 xml xpath

假设我们有以下XML结构:

<a><b>2<d>4</d></b><c>3</c></a> 
Run Code Online (Sandbox Code Playgroud)

为什么sum(//*)返回274?

yeg*_*256 4

因为它是 243 + 24 + 3 + 4 = 274

//*表示所有元素,即abcd。然后,我们总结它们的文本值,其中包括除标签之外的所有内容。

我认为,您要寻找的是sum(//*/text()),在本例中是 9

  • `//*` 给你 `['&lt;a&gt;&lt;b&gt;2&lt;d&gt;4&lt;/d&gt;&lt;/b&gt;&lt;c&gt;3&lt;/c&gt;&lt;/a&gt;', '&lt;b&gt;2&lt;d &gt;4&lt;/d&gt;&lt;/b&gt;'、'&lt;d&gt;4&lt;/d&gt;'、'&lt;c&gt;3&lt;/c&gt;']`。来自 http://www.w3.org/TR/xpath/#function-sum “sum 函数返回参数节点集中每个节点的总和,该结果是将节点的字符串值转换为一个号码。” (2认同)