Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > XML & WML
Перезагрузить страницу Тонкость с игнорированием повторяющихся узлов в xslt
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
posdnyaa posdnyaa вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2008
По умолчанию 02.08.2008, 16:37

Столкнулся вот с какой проблемой.
Есть xml:
Код:
<root>
<Info Currency="USD" Denom="20" amount="21" />
<Info Currency="RUB" Denom="10" amount="12" />
<Info Currency="RUB" Denom="10" amount="22" />
<Info Currency="RUB" Denom="100" amount="12" />
<Info Currency="RUB" Denom="500" amount="91" />
<Info Currency="RUB" Denom="10" amount="521" />
<Info Currency="USD" Denom="100" amount="21" />
</root>
Currency-Валюта, Denom-номинал.
Хочу средствами xslt получить отсортированный по возрастанию список номиналов где Currency="RUB" и чтобы Denom не повторялся (т.е. 10 100 500).
В xslt это делается так:
Код:
<xsl:for-each select="root/Info[(not(@Denom=preceding-sibling::Info/@Denom)) and @Currency='RUB']">
<xsl:sort select="@Denom" data-type="number" order="ascending" />
<xsl:value-of select="@Denom"/> руб.

</xsl:for-each>
Однако если в первой строчке в xml заменить номинал доллара (Denom) на 10
то условие [(not(@Denom=preceding-sibling::Info/@Denom)) and @Currency='RUB']
все равно увидит эту строчку с долларом, а т.к. там стоит 10 (а в рублях тоже есть Denom="10"), то в результате получим список для рублей не 10 100 500,
а 100 500.
10 куда то исчезает.
Подскажите пожалуйста как обойти этот баг или я что-то делаю не так?
Ответить с цитированием
  (#2 (permalink)) Старый
posdnyaa posdnyaa вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2008
По умолчанию 02.08.2008, 22:14

Решение найдено.
Изменить условие
[(not(@Denom=preceding-sibling::Info[@Currency='RUB']/@Denom)) and @Currency='RUB']
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access: запрос на удаление повторяющихся записей iusovich SQL 10 30.05.2013 12:24
Delphi7. Копирование не повторяющихся слов Сароникус Delphi 3 28.10.2011 19:41
удаление повторяющихся элементов Friz Prolog 1 22.12.2010 00:05
Организация повторяющихся действий evro Prolog 1 02.11.2010 21:41
Сумма весов узлов древа hangkokk Prolog 15 29.12.2009 16:06
Подсчет узлов дерева kuller Prolog 2 29.12.2008 22:59
Исключение из массива повторяющихся элементов Ceper@ Вопросы начинающих программистов 6 21.12.2006 13:30
Удаление повторяющихся строк в Excel с предварительным суммированием addim Visual Basic 8 13.07.2006 14:35
Использование и работа с XSLT Bogdan1024 XML & WML 6 14.06.2006 20:08
Удаление повторяющихся элементов. imported_director Prolog 8 12.10.2005 18:56
Как из xsl-скрипта вывести XSLT FAQ #0 Веб-программирование 2 19.04.2004 18:50
Удаление повторяющихся записей в Excel OKey Visual Basic 2 29.03.2004 13:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов