|
|
|
Разбить XML данные на страницы
|
|||
|---|---|---|---|
|
#18+
Добрый день. Вопрос про XML, XSLT. 1.Есть исходный файл test.xml : Код: 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. Код: 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. Дополнительно необходимо разбить эти данные на страницы по 25 строк типа (idX valueX) . Разделители страниц (<span style="page-break-before: always"></span>) можно вставлять только перед sector/subsector. 3. Вывод данных по секторам и субсекторам я организовал таким образом, файл transform.xsl : Код: 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. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 00:16 |
|
||
|
Разбить XML данные на страницы
|
|||
|---|---|---|---|
|
#18+
1. а посему не вкалдывать элементы Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 12:28 |
|
||
|
Разбить XML данные на страницы
|
|||
|---|---|---|---|
|
#18+
belugin1. а посему не вкалдывать элементы Код: plaintext 1. 2. 3. 4. 5. Из этого примера не очень понятно, каким образом при помощи XSLT разбить длинный список строк (в данном примере данные в тегах item) на страницы (пусть скажем по 20 строк на страницу) ? Может у кого есть еще соображения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 00:51 |
|
||
|
Разбить XML данные на страницы
|
|||
|---|---|---|---|
|
#18+
В вашем случае думаю надо писать рекурсивный шаблон для вывода одной страницы. У вас границы произвольной страницы можно определить только просчитав размеры всех предыдущих страниц. Однозначно итеративный алгоритм. Итеративные алгоритмы в XSLT довольно просто реализуются рекурсией. Ну а шаблон с параметрами позволяет "присваивать" значения "переменным" (точнее конечно же параметрам). Так что вам проще всего будет проанализировать как бы вы это реализовали на алгоритмическом языке, и сделать то же самое на XSLT, только на рекурсивных шаблонах. Ну и еще один вариант - если эти данные формируются исключительно для такого представления, можно их изначально при генерации разбивать на куски нужного размера. Правда это конечно явное нарушение принципа разделения данных и представления. Но возможно вам это не критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 18:33 |
|
||
|
Разбить XML данные на страницы
|
|||
|---|---|---|---|
|
#18+
Вот кусочек шаблона с рекурсивным вызовом (показывает тамбнейлы для генерации фотоальбома phoa в html - полный архив присоединен) Число 4 - это чисо картинок в строчке - в принуипе также на страницы можно бить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 21:45 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=34733841&tid=1334188]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 143ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...