xml - 子结构上的 XPath 求和

标签 xml xpath xquery

如何在以下结构上编写 XPath 总和?

<Order>
     <Details>
        <Detail>
            <Quantity>10</Quantity>
            <ItemPrice>20</Quantity>
        </Detail>
        <Detail>
            <Quantity>10</Quantity>
            <ItemPrice>20</Quantity>
        </Detail>
     </Details>
 </Order>

我想得到(数量 * 商品价格)的总和

我能做到:

select *
from mytable
where documentdata.exist('/Order[sum(/Details/Detail/Quantity) > 20]) = 1

但是我想使用 Quantity * ItemPrice 但我不知道它的语法..

最佳答案

尝试

select *
from mytable
where documentdata.exist('/Order[sum(for $d in Details/Detail return $d/Quantity * $d/ItemPrice) > 20]) = 1

这是正确的 XQuery 语法,因此它可能适用于 MS SQL Server,因为它对 XQuery 的支持有限。

关于xml - 子结构上的 XPath 求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139339/

相关文章:

Xml 命名空间 - Coldfusion

java - Jackson XML + 不要将值包装在标签中

Xpath 找到一个没有特定文本的子元素的 div

search - MarkLogic 变音符号不敏感片段

javascript - IE8 DOM 转换 XML 并从 jQuery find() 或 filter() 返回任何内容

c++ - C++ 中的高性能 XML 解析

javascript - 如何通过selenium获取ExtJS combobox的选中值?

xslt - 如何匹配在 xslt/xpath 中具有某个同级元素的元素

datetime - Xpath 中的循环时间

html - 使用 XQuery 转换 HTML