Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > XML, XSL > xsl:sort и preceding-sibling.чем можно заменить? |
Автор: ББС 24.11.2008, 15:28 | ||
Есть xml file
Надо получить отсортированную(в порядке возрастания типа и имени)таблицу состоящую из имени и типа.И убрать повторяющиеся элементы.Все дело в том ,что preceding-sibling строит ось по исходному документу а не по отсортированому???Пока придумать не могу. |
Автор: Juggernaut 24.11.2008, 17:33 | ||||
Я это вижу примерно так: Исходный файл, например table.xml:
Я от себя добавил узел верхнего уровня, для удобства. Файл с XSLT, например table.xsl:
Собственно все. Правда все это работает только с процессорами, поддерживающими XSLT 2.0. Я использовал Saxon9. |
Автор: ББС 24.11.2008, 18:56 |
К сожелению надо XSLT 1.0. Не совсем понимаю как это будет работать. Группирует по типу,потом сортирует(находит наименьший допустим 01).Затем группирует по именам (находит наименьший допустим ABC). И выводит? Не может ли получиться так что имя и тип ,которые выведутся ,будут относиться к разным узлам? |
Автор: ББС 24.11.2008, 19:13 | ||
Я сделал следующим образом .
Но дело в том ,что XML file большой .И preceding-sibling занимает много времени. Вместо того чтобы сравнить только с предыдущим приходиться сравнивать практически со всеми узлами. |