|
|
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
<xsl:template match="item"> ,['<xsl:value-of select="@name"/>' <xsl:apply-templates select="item"/> ] </xsl:template> Вот собственно рекурсия..мне нужно при первом визове етого шаблона не печатать перед именем елемента символ ",". Как вийти из такой ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2006, 13:23 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Mr.Zlatko <xsl:template match="item"> ,['<xsl:value-of select="@name"/>' <xsl:apply-templates select="item"/> ] </xsl:template> Вот собственно рекурсия..мне нужно при первом визове етого шаблона не печатать перед именем елемента символ ",". Как вийти из такой ситуации? Сделать отдельный шаблон для первого вызова, без ",". Если не подходит напиши почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2006, 13:46 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
другой вариант - добавить параметр (уровень рекурсии например) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Cheers Pete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2006, 19:33 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Код: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. почему то в if никогда не попадает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 12:37 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
ну я поторопился немного <xsl:with-param name="level" select="number($level) + 1" /> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 17:16 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Не надо вводить уровней рекурсии. Вот так будет проще: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 17:37 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
да спасибо заработало...и еще напоследок подскажы пожайлуйста как мне выводить в хтмл результат number($level) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 17:43 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Молчун82Не надо вводить уровней рекурсии. Вот так будет проще: Гыыы... два раза и оба не правильно. Надо тогда через мод делать (apply-templates select="..." mode=".." ) 2 Mr.Zlatko так и выводить <xsl:value-of select="number($level)" /> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 19:08 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Господа а можна ли каким то простым способом узнать что ето последний уровень рекурсии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 12:33 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
<xsl:if test="position() = last()" > ... только мне начинает казаться, что вы там что то не то пытаетесь сделать... опишите ка задачу с самого начала, с примерами xml и xsl... Cheers Pete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 13:06 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Мой хмл файлик опысывает меню реализованое в жаваскрипт.Хсл должен сформировать многовымерный масив. <menu name="MHATAdmin"> <item name="File"> <item name="New"> <item name="New1" handler="OnNew1"> </item> </item> <item name="Open"> <item name="Open1" handler="OnOpen1"> </item> </item> </item> </menu> Атрибут handler может быть только у последнего елеметна менюшки, вот собственно поетому я и спросил как узнать последний ли ето уровень рекурсии. А предыдущий мой вопрос про вывод числа ..был просто для самоусовершенсвования.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 13:20 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Вам рекурсия вообще не нужна - Молчун был прав, конечно, только вот сказать не успел :) задача с запятыми в списке стандартная и решается вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. для менюхи чуть посложнее но тоже самое. Рекурсия нужна в достаточно редких случаях. Вот недавний пример - в xml лежит дерево. Каждый элемент ссылается на предыдущий элемент (parent). Для того что бы это дерево выстроить рекурсия нужна. А в таком случае просто apply-templates. Cheers Pete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 13:39 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Извини но я наберусь смелости опротестовать...с запятыми я с тобой согласен..но для решения задачи в целом без рекурсии никак...как я уже говорил в результате я должен получть многомерный масив...а точнее сложный масив масивов который по своей сути и есть деревом с родителями, потомками и так далее..вот так.. А вот конструкция <xsl:if test="position() = last()" > равна истине на первом же уровне рекурсии..пробувал <xsl:if test="position() != last()" > но ета равна истине уже на втором уровне..а мне нужно как то определть что ето последний потомок етой ветви дерева ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 13:55 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
хммм... несите код, будем разбираться :) Cheers Pete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:07 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Вот и код..все будет работать правильно если я научуся определять что ето последний потомок или уровень рекурсии текущей ветви ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:16 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Врубился. Пятница все таки, утро и все такое. Вам нужен node-test на рекурсию, т.е. что то в этом роде Код: plaintext 1. 2. 3. Cheers Pete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:16 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
xml то дайте :) Cheers Pete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:17 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
а я уже давал ) повторяю : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 14:32 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
А вот с ноде тестом не совсем понятно увы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 15:01 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
бежать надо попробуйте сами отсюда Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 15:26 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Я чуть перетасовал код на свой лад..но главное что он заработал! Огромнеишее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2006, 15:54 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Mr.Zlatko...но главное что он заработал! ... На мой взгляд, "главное" все-таки, не в том, чтобы код заработал (заставить его "работать" можно 10К-ми способами), а в том, чтобы разобраться в сути обсуждаемой проблемы и дать адекватный ответ, соответствующий поставленной задаче, а не пытаться подогнать под желаемый результат "нагромождение" xsl:choose -ов, xsl:variable -ов и пр. xsl:with-param -ов там, где они и нахрен никому не нужны: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. З.Ы. учите матчасть, ребята... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2006, 18:10 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
D'esperado... З.Ы. учите матчасть, ребята... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2006, 18:18 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
Ну все приходит с опытом..не читав вашых 2 последних постов, а почитав матчасть на выходных я и сам дошел к любезно предоставленому вами решению, хотя решения у меня сложилося только на теоретическом уровне...поетому за пример искренне благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2006, 11:50 |
|
||
|
Проблема с рекурсией в XSL
|
|||
|---|---|---|---|
|
#18+
D'esperado ... соответствующий поставленной задаче, а не пытаться подогнать под желаемый результат "нагромождение" xsl:choose -ов, xsl:variable -ов и пр. xsl:with-param -ов там, где они и нахрен никому не нужны: [src] виноват вашблагородие, убегал торопился, код не почистил. with-param остался от старой версии. Мысль то была простая - ведем рекусию, смотрим есть ли child node, если есть ставим запятую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2006, 14:17 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=33590704&tid=1334858]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
103ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 418ms |

| 0 / 0 |
