|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Привет всем. Ребят, я в XML ну практически вообще никак. Писал как-то преобразование через XSL, но там задача была проще. В общем, есть XML файл, созданный при помощи экспорта из Adobe Acrobat, каждая страница представлена вот таким кодом: Код: 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.
При этом начало и конец страницы никак не обозначены. Т.е. просто идут страницы одна за другой. Какая у меня цель в идеале: получить файл (типа CSV), в котором будут колонки: название (Zagolovok), ссылки на картинки, таблица характеристик и описание. 4 колонки в итоге. Как это возможно сделать? Как дать понять преобразователю, что страница закончилась и началась новая? Помогите пожалуйста, кто чем может. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2010, 19:23 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Anton Klyauzov, PDF покажите, в приложенном вами XML гораздо больше информации, чем вы привели в примере. например это и есть ваша пагинация: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2010, 21:13 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
да, еще, как вы себе представляете разметку в CSV? Текст, Список картинок (разделитель какой?), таблица (тегами?), описание там тоже таблицы. параграфы, не параграфы, детально не смотрел, но куча лабуды... разделенные запятыми значения как то не выходят, куда потом транспортить будем, Excel? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2010, 21:20 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
CSV для загрузки в Virtuemart (он-лайн каталог в Joomla), в качестве ограничителей полей используются символы "~" (тильда), разделители ";" (точка с запятой). Список картинок - отдельными колонками. Типа additional_images. Таблица - html тэгами, она там в принципе почти в таком виде и присутствует. Описание - вполне допустимо использование простого текста. Для того чтобы нормально разбирать страницу, пытался добавить во все страницы новый тэг. К примеру, пробовал заменить <story><kolontitul> на </page><page><story><kolontitul> и потом убрать лишние включения. Результата пока нет. PDF мог бы показать, но он весит 52.6 мегабайт в архиве. Если это не пугает, выкладываю ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2010, 21:51 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Anton Klyauzov Если это не пугает не пугает. меня страницы 8-11 из PDF смутили, так понимаю их можно проигнорировать и добавить либо руками, либо еще как, а начиная с 12й уже все более менее единообразно идет. Ща придумаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 00:45 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Кури, че непонятно, спросишь. формат: ~Заголовок~КартинкаКартинка~ТаблицаТаблица~<P>Текст</P><P>Текст</P>; если, как ты говоришь, с 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. 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 03:18 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
угловые скобки в xPath строках < и > в исходнике были < и > форум слопал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 03:22 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Спасибо за код. Только я не вкурил, где скобки заменились. Судя по ошибкам при открытии XSL - я поменял в эти строках: Код: plaintext
< на lt, > на gt. Результат на выходе - обработалось две страницы. Т.е. до самих автомобилей дело не дошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 09:36 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Пожалуйста приложи файл аттачем, чтобы код не съелся, если не сложно. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 09:39 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 15:42 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Спасибо вам ребята, теперь я понял, почему не работало, так как я ожидал. Сам дурак. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 16:08 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Я безмерно вам благодарен за выложенный код, реально всё работает. Натолкнулся на такую сложность: ввиду того, что импорт дополнительных картинок для товаров в Virtuemart (виртуальный каталог на Joomla) нужно делать через специальный шаблон , получается, что нужно два CSV файла. Один - список товаров с основными полями код товара (product_sku), основная картинка товара (product_image), описание товара (product_desc), ну, и так далее. А вторым CSV-файлом идут дополнения для загруженного списка товаров. и там тоже присутствуют коды товара и файлы, к нему относящиеся. Рождается такая задача: так как в исходном XML нет явно выраженного типа нумерации товаров (страниц в моем случае) то придется использовать некий счетчик, который будет присваивать каждой строке идентификатор товара. Счетчик должен иметь возможность задания начального значения, так как XML файлов будет несколько, а нумерация в базе сквозная. При формировании первого вывода через XSL для каждого товара должна остаться одна картинка, первая. Остальные картинки (их может быть несколько, а может не быть вообще) нужно получить отдельным списком, где каждая картинка будет на новой строке и будет соответствовать коду товара присвоенному счетчиком в первом проходе. Как-то так. Может, как-то путано объясняю, но вроде всё разжевал. Если это возможно сделать, и не очень сложно - помогите пожалуйста доработать до ума предложенный XSL. P.S. Я кстати, ошибся, и разделителями полей является символ ^ Я поправил ваш файл, чтобы разделение по полям (^) и ограничение (~) располагалось так, как нужно в итоге. Также, от картинки нужно только название файла. Это в XSL тоже исправил. Единственное, что не понял - как убрать в конце каждой страницы: "Полный список крано-манипуляторных установок Amco Veba (этот текст может меняться) вы можете увидеть на сайте www.amcoveba.ru (этот текст может меняться) " ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 22:41 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Я нашел функцию, которая позволяет заменять одну строку - другой, но там нужно только точное соответствие. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 23:33 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Anton Klyauzov, а про картинки ведь был один из первых вопросов ай-ди - тащу из РДФ метаданных, по идее он должен быть уникальным, не устроит переопределите docID или закините сверху, как параметр трансформеру. текст с сылкой на сайт(в конце страницы) - разный, я там показал для 2х сайтов как отловить,если не боитесь, можно порезать все строки с 'www.', это уже на ваше усмотрение или добавляете сайты, определив их просмотром исходных пдф. когда воткнете все это в цмс - сравните таблицы, есть у меня кое-какие сомнения там. пдф их крайне криво строит, вероятно прийдется за ним колспаны раставлять ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2010, 23:47 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
mage.lan , Да, всё отлично, спасибо. Колспаны действительно нужно будет добавлять - при экспорте они не учлись, и были созданы пустые TD ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2010, 09:18 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
mage.lan, Идентификатор в RDF оказался одинаковый для всех 7ми файлов XML полученных из 7ми файлов PDF. Отсюда вопрос - чтобы использовать один шаблон XSL, не переписывая ID - можно ли как-то вытянуть в переменную название XML файла, к которому шаблон привязан? И по поводу колспана - автоматизировать это возможно? К примеру, если в строке <TR> есть пустое <td></td>, то нужно посчитать количество TD в строке, убрать пустые и оставшийся TD поменять на TH с colspan, равном изначальному количеству TD? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2010, 23:20 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Anton Klyauzov, там еще инстанс-айди был, может он отличается. не знаю, чем ты трансформишь, ежели эксплорером, просто допиши что-нить в рутовую ноду и вычитай как ид. если взрослым трансформером - закинь сверху параметр. с таблицами побороться можно, но там надо малек подумать, нахрапом не выйдет. а думать я сенни не могу, бошка как улей, завтра на работе может чего соображу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2010, 01:38 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
mage.lan, Да, трансформирую эксплорером, потому что он переносы строк в preserve нормально понимает, в отличии от мозиллы. А специально трансформер ставить я что-то не стал. Инстанс - да, разный, но его почему-то не удалось зацепить. В общем, поменяю в исходном файле руками. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2010, 09:28 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Anton Klyauzov, все темплейты у кого указан mode="table" меняешь на Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2010, 18:19 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Andry Trushin, Каждый по отдельности? Или все с mode=table скопом на этот код? Если заменяю каждый отдельно - получаю ошибку что cols не может быть определен несколько раз. Если меняю все скопом - то ни одна таблица в выводе не присутствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2010, 09:39 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Понял, в чем дело, у меня несколько файлов XML, и в них видимо таблицы оформлены по-разному. Соответственно, трансформер не всё обрабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2010, 10:18 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Ссылка на файл со всеми XML и XSL, который я сейчас использую: http://ifolder.ru/19756000 К сообщению не приложился, потому что весит 200кб (ограничение - 150) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2010, 10:32 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Anton Klyauzov, инстанс ай-ди вычитал. вызов таблиц поправил. там есть еще драконы, например, с "ГАЗ-3307/09 БОРТОВОЙ" из cabin.xml (первое, что попалось под руку) таблица генерится криво изначально. поправить конечно можно, но это уже ресурсоемко, надо смотреть все таблицы, смотреть исходники, думать алгоритм... руками в цмс править думаю займет такое же время. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2010, 13:33 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Andry Trushin, Спасибо большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2010, 08:29 |
|
Помогите преобразовать не иерархичные данные XML
|
|||
---|---|---|---|
#18+
Никак не могу добиться - пробую по аналогии с вашим кодом: нужно добавить во второй вывод (там где только список дополнительных картинок) еще и название товара (Zagolovok) Скопировал туда часть кода из первого вывода Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2010, 13:28 |
|
|
start [/forum/topic.php?fid=14&msg=36893682&tid=1333094]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 470ms |
0 / 0 |