Моя бухгалтерия - XML содержит два отдельных элемента, один только для положительной, а другой для отрицательной денежной стоимости. Я хочу создать HTML -таблицу с использованием XSL для входящей и исходящей передачи, а также промежуточную сумму для каждой строки. Я нашел sum(preceding-sibling::Buchungszeile/Betrag) + Betrag)
, который отлично работает, если все элементы содержат число. К сожалению, для положительных значений отрицательный элемент не равен 0, а пуст, и наоборот.
<Buchungszeile>
<Buchungstag>2019-12-05</Buchungstag>
<Soll-Betrag>100</Soll-Betrag>
<Haben-Betrag></Haben-Betrag>
</Buchungszeile>
<Buchungszeile>
<Buchungstag>2019-12-06</Buchungstag>
<Soll-Betrag></Soll-Betrag>
<Haben-Betrag>155</Haben-Betrag>
</Buchungszeile>
<Buchungszeile>
<Buchungstag>2019-12-07</Buchungstag>
<Soll-Betrag>50</Soll-Betrag>
<Haben-Betrag></Haben-Betrag>
</Buchungszeile>
Проблема 1. С помощью переменной xsl: $betrag
я могу просто отобразить все деньги -значения в одном столбце HTML, отрицательные с начальным знаком «-». Но я не нашел способа получить доступ к этой переменной для функции «Текущий итог sum()
».
Проблема 2: Я не могу найти способ сгенерировать новый XML -элемент, например, <Betrag>
на лету, содержащий все положительные и отрицательные значения для использования для sum(preceding-sibling::Buchungszeile/Betrag) + Betrag)
Проблема 3. Я не могу найти способ получить доступ к значению предыдущей строки, используя position()
.
Каким будет правильный способ достичь этого результата:
<table>
<tr> <td>Buchungstag</td> <td>Betrag</td> <td>Running Total</td> </tr>
<tr> <td> 2019-12-05</td> <td> -100</td> <td> -100</td> </tr>
<tr> <td> 2019-12-06</td> <td> 155</td> <td> 55</td> </tr>
<tr> <td> 2019-12-07</td> <td> -50</td> <td> 5</td> </tr>
</table>