powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Подсчет сумм в иерархическом дереве
3 сообщений из 3, страница 1 из 1
Подсчет сумм в иерархическом дереве
    #35447548
Максим См.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток,
Кто-нибудь решал похожую задачу: подсчет сумм в иерархическом дереве.
Пример: Есть XML. Для Элементов Item проставлены суммы, нужно заполнить их для элементов "Group". Возможно ли решение через XSL?
Дано:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Group Sum="">
  <Group Sum="">
    <Group Sum="">
      <Item Sum="10"/>
      <Item Sum="20"/>
    </Group>
    <Item Sum="30"/>
  </Group>
  <Item Sum="40"/>
</Group>
Результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Group Sum="100">
  <Group Sum="60">
    <Group Sum="30">
      <Item Sum="10"/>
      <Item Sum="20"/>
    </Group>
    <Item Sum="30"/>
  </Group>
  <Item Sum="40"/>
</Group>
...
Рейтинг: 0 / 0
Подсчет сумм в иерархическом дереве
    #35448030
Volder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="*">
      <xsl:copy>
         <xsl:choose>
            <xsl:when test="local-name()='Group'">
               <xsl:attribute name="Sum"><xsl:value-of select="sum(.//Item/@Sum)"/></xsl:attribute>
            </xsl:when>
            <xsl:otherwise>
               <xsl:copy-of select="@*"/>
            </xsl:otherwise>
         </xsl:choose>
         <xsl:apply-templates/>
      </xsl:copy>
   </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
Подсчет сумм в иерархическом дереве
    #35448166
Максим См.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здорово! Спасибо большое! Я то по привычки думал, что нужно как-то через рекурсию... :)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Подсчет сумм в иерархическом дереве
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]