Як підсумувати значення для кожного циклу в XSLT?

2024 Від admin

У випадку XSLT 1.0 вам потрібно використовувати рекурсивний шаблон, який відстежуватиме кумулятивну вартість продукту ( item_price * gst ) для повторюваного вузла <item>. У випадку XSLT 2.0 це прийнятно використовувати вираз sum(item/(item_price * gst)). для обчислення суми добутків.

Обчислення суми в циклі Оскільки всі елементи t числові, ми можемо обчислити їх суму. Спочатку ми створюємо змінну для зберігання результату суми. Ми називаємо це sum_. Потім ми повторюємо всі елементи в t і на кожній ітерації циклу додаємо значення кожного елемента до змінної sum_.

Функція sum(). — Перетворює всі вузли в наборі вузлів аргументів на числа, а потім повертає суму всіх цих чисел. Якщо будь-який вузол у наборі вузлів не можна перетворити на числа (передача їх у функцію number() повертає NaN), функція sum() повертає NaN.

Ви створюєте цикл XSLT за допомогою тег <xsl:for-each>. Значення атрибута select у цьому тегу є виразом XPath, який дозволяє вказати елемент даних для проходження.

XSLT <xsl:variable> Примітка. Після того, як ви встановили значення змінної, ви не можете змінити чи змінити це значення! Порада. Ви можете додати значення до змінної за вмістом елемента <xsl:variable> АБО за атрибутом select!

Використовуйте функції XPath count() і position().

  1. Підрахунок (шлях розташування до елемента) повертає кількість екземплярів для набору вузлів (для елемента).
  2. У межах циклу <xsl:for-each> функція position() повертає номер ітерації.