![]() |
|
Модераторы: diadiavova |
![]()
|
|
| rusBob |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.1.2007 Репутация: нет Всего: нет |
Всем доброго времени суток!
проблема в следующем, написал шаблончик: <xsl:template match="kau"> <xsl:for-each select="kau[begStockDeb]"> <xsl:sort data-type="number" select="@val" order ="ascending"/> <tr> <td> <xsl:for-each select="ancestor-or-self::kau"> <xsl:value-of select = "concat(@val,'.')"/> </xsl:for-each> </td> <td><xsl:value-of select="begStockDeb"/></td> <td><xsl:value-of select="begStockCr"/></td> <td><xsl:value-of select="entryDeb"/></td> <td><xsl:value-of select="entryCr"/></td> </tr> </xsl:for-each> <xsl:apply-templates select="child::*[self::kau]"> <xsl:sort data-type="number" select="@val" order ="ascending"/> </xsl:apply-templates> </xsl:template> который рекурсивно проходит все дерево, но одна проблема, в таблицу выводятся данные не по мере обхода дерева (в глубь по иерархии) а по очередности уровней, вот так 2.1.0.669. 2.1.0.966. 2.1.0.1819. 2.1.0.2081. 2.1.0.669.7498 2.1.0.966.-9. 2.1.0.1819.6774 2.1.0.1819.6968 2.1.0.1819.6969 2.1.0.1819.6970 2.1.0.1819.7745 2.1.0.2081.8083 а небоходимо вот так 2.1.0.669. 2.1.0.669.7498 2.1.0.966. 2.1.0.966.-9. 2.1.0.1819. 2.1.0.1819.6774 2.1.0.1819.6968 2.1.0.1819.6969 2.1.0.1819.6970 2.1.0.1819.7745 2.1.0.2081. 2.1.0.2081.8083 Может кто - то решал подобную проблему?? Спасибо! |
|||
|
||||
| JVM |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 30.10.2006 Репутация: 4 Всего: 5 |
Чего-то вы нагородили ... Исходный xml можно показать?
|
|||
|
||||
| rusBob |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.1.2007 Репутация: нет Всего: нет |
Да, конечно:
<rootXML> <kau val="2"> <kau val="2"> <kau val="0"> <kau val="644"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>9185.00</entryDeb> <entryCr>9185.00</entryCr> <kau val="7476"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>9185.00</entryDeb> <entryCr>9185.00</entryCr> </kau> </kau> <kau val="400"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>4510.00</entryDeb> <entryCr>4510.00</entryCr> <kau val="7874"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>4510.00</entryDeb> <entryCr>4510.00</entryCr> </kau> </kau> <kau val="2092"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>34999.98</entryDeb> <entryCr>34999.98</entryCr> <kau val="8143"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>34999.98</entryDeb> <entryCr>34999.98</entryCr> </kau> </kau> <kau val="1684"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>2292.00</entryDeb> <entryCr>2292.00</entryCr> <kau val="6273"> <begStockDeb>0</begStockDeb> <begStockCr>0</begStockCr> <entryDeb>2292.00</entryDeb> <entryCr>2292.00</entryCr> </kau> </kau> .................................. Идея в следующем, имеется иерархическая структура аналитик счета, самый нижний уровень - сумма проводки, сервлетом я задаю уровень группировки, т.е. уровень иерархии на котором мне нужно суммировать общую сумму по данной аналитике начиная с нижнего уровня, на яве у меня все это реализовная иерархией в виде коллекций, т.е. Map - ом, ключом которого является номер аналитики а значение - коллекция содержащая дочерние коллекции аналитик, самы нижний лист содержит коллекцию из конкрентного значения проводки включая дату и т.п., далее сервлет выгружает эту коллекцию в хмл... вот собственно и все. Добавлено @ 11:34 Все вроде решил, всем, спасибо, хотя может у меня не оптимальный вариант... <!-- Рекурсивный шаблон для обработки аналитик и вывода их в таблицу --> <xsl:template match="kau"> <xsl:if test="begStockDeb"> <tr> <td> <xsl:for-each select="ancestor-or-self::kau"> <xsl:value-of select = "concat(@val,'.')"/> </xsl:for-each> </td> <td><xsl:value-of select="begStockDeb"/></td> <td><xsl:value-of select="begStockCr"/></td> <td><xsl:value-of select="entryDeb"/></td> <td><xsl:value-of select="entryCr"/></td> </tr> </xsl:if> <xsl:apply-templates select="child::*[self::kau]"> <xsl:sort data-type="number" select="@val" order ="ascending"/> </xsl:apply-templates> </xsl:template> Всем большое спасибо! |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |