| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > Как проверить атрибут следующей записи |
| Автор: Millisa 19.1.2010, 12:30 | ||||
| Здравствуйте у меня есть xml
в xsl коде для применения template я использую проверку:
почему-то при following-sibling::record[1]/@jsxPId=13 current()/@jsxPId=161 все равно мы входим в if . Что я делаю неправильно?? Мне в этом месте нужно зайти в этот xsl только если jsxPId следующего record равен текущему, в чем может быть ошибка, или это можно реализовать как-то по другому?? Помогите пожалуйста! |
| Автор: diadiavova 19.1.2010, 12:52 |
| Millisa, приведи весь код. Этот кусок у меня работает правильно. И пользуйся разметкой |
| Автор: diadiavova 19.1.2010, 13:12 | ||||||
И всё это даёт такой вот вывод
|
| Автор: Millisa 19.1.2010, 13:42 | ||||||
| Теперь я еще меньше понимаю Вот мой весь xsl
и если применить его к xml то на выходе
Т.е. получается если внутри if лежит variable, то условие срабатывает правильно. в моем же случае - неправильно ( Мне на выходе нужно получить вот такой -
|
| Автор: diadiavova 19.1.2010, 13:51 |
| Millisa, а исходный документ где? И что нужно получить в результате? Добавлено через 48 секунд Да и ещё...вторая строчка стиля что делает? |
| Автор: Millisa 19.1.2010, 13:57 | ||||||
входной xml такой
выходной должен быть такой
мне нужно проходя по входному xml смотреть если jsxPId изменился, то создать parent с id=jsxPId и этот рекорд будет его child, а если не изменился, тогда это child того же parent что уже был ранее создан. Все рекорды, относящиеся к одому паренту идут подряд, поэтому я иду по xml и проверяю у следующего рекорда jsxPId такой же или он изменился, если изменился выхожу из template child и создаю нового parent, если не изменился, снова вызываю template child Добавлено @ 14:05 Если сделать так
То если судить по выводу <xsl:value-of select="@jsxPId"/> в if он заходит правильно, но почему-то <xsl:apply-templates ....> выполняет не смотря на то что он находится в if PS. Вторая случайно скопировалась, уже убрала |
| Автор: diadiavova 19.1.2010, 14:24 |
| Millisa, я понял задачу, сейчас пока не могу этим заниматься, но потом обмозгую. Одно уточнение: в одну группу элементы попадают только в том случае если в исходном документе они идут подряд, или все элементы с одинаковым атрибутом по которому осуществляется группировка должны оказаться в одной группе? |
| Автор: Millisa 19.1.2010, 15:29 |
| В одну группу попадают только те что идут подряд с одинаковым jsxPId |
| Автор: JVM 19.1.2010, 15:44 | ||
Я правильно понял:
|
| Автор: Millisa 19.1.2010, 16:13 |
| Спасибо огромное!!!!!! Вариант JVM |