2013-06-14 3 views
0

Вот мой XMLКак суммировать из 2-х полей в XML?

<ticket><sold>0</sold><price>7.00</price></ticket> 
<ticket><sold>1</sold><price>7.00</price></ticket> 
<ticket><sold>1</sold><price>7.00</price></ticket> 

Я хочу подвести общие цены продажи, в данном случае это будет $ 14,00, потому что первый один не продает билет

тег будет иметь только 2 значения (1 или 0)

Самый простой способ, о котором я думаю, заключается в нескольких ценах, проданных за каждый билет, а затем суммировании.

I группа по и ниже мой код, но я получил 0

0<?sum(current-group()/sold * current-group()/price)?> 

вы знаете, почему? Если у вас есть более простой подход, пожалуйста, дайте мне знать

Благодаря

ответ

0

Если вы знаете, что значение <sold> только когда-либо 0 или 1 вы можете просто сделать:

sum(//ticket[sold!=0]/price[.>0]) 

последней проверки ([.>0]) гарантируют, что они являются числовыми узлами, чтобы убедиться, что они вернутся правильно.

+0

Я не думаю, что это подойдет, потому что сумма проданного множителя, проданного, кажется, выиграна. –

1

Потому что из вашей попытки (sum(current-group()/sold * current-group()/price)) Я предполагаю, что вы ищете сумму умножения проданной и цены. С помощью xpath 2.0 вы можете попробовать:

sum(//ticket[sold!=0]/(price * sold))