0

我需要得到两个总数CreditCardTotalCashTotal并且必须在另一个标签中显示它们AccountCost,如下所示。

基本上,我需要获取费用金额并检查它是信用卡还是现金,然后将其添加到相应的总变量中。或者如果有更优雅的方式请告诉我。

我对 Xpath 完全感到困惑和陌生。谢谢,并将真正感谢您的时间和精力。

<ExpenseCatDetail>
    <Expense>500</Expense>
    <PaymentMethod>CreditCard</PaymentMethod>
    <AccountCost>700</AccountCost>
</ExpenseCatDetail>

<ExpenseCatDetail>     
     <Expense>100</Expense>
     <PaymentMethod>Cash</PaymentMethod>
     <AccountCost>400</AccountCost>
</ExpenseCatDetail>

<ExpenseCatDetail>
    <Expense>200</Expense>
    <PaymentMethod>CreditCard</PaymentMethod>
    <AccountCost>700</AccountCost>
</ExpenseCatDetail>

<ExpenseCatDetail>
   <Expense>300</Expense>
   <PaymentMethod>Cash</PaymentMethod>
   <AccountCost>400</AccountCost>
</ExpenseCatDetail>
4

1 回答 1

1

XPath 无法构建元素,为此您需要 XQuery。

要获取单个总和,请使用

sum(//ExpenseCatDetail[PaymentMethod="Cash"]/AccountCost)

并根据需要替换“现金”。

使用 XPath 2.0,您至少可以在一个语句中计算两个总和并返回两个值的序列(通常映射到数组或其他编程语言中的类似结构):

(
  sum(//ExpenseCatDetail[PaymentMethod="Cash"]/AccountCost),
  sum(//ExpenseCatDetail[PaymentMethod="CreditCard"]/AccountCost)
)
于 2013-06-06T20:20:14.773 回答