|
|
|
XML file
|
|||
|---|---|---|---|
|
#18+
Большой XML файл, одной строкой. Нужно перелопать его и засунуть данные в БД. Внимание вопрос, как проще это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 20:39:01 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Пример документа: Код: xml 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. только в 1 строчку все. Есть идея читать файл понемногу и матчить и заносить в базу, пока не могу придумать, как отделить уже обработанный XML от не до конца считанного хвоста, если обрабатывать тем же preg_match_all (к примеру), так будет проще, т.к. набор полей может различаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 21:01:05 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Сильно большой файл, мегабайты? Есть вероятность впереться в ограничение по памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 22:17:12 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
7 гигабайт самый большой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 22:21:50 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
XMLReader вроде похоже на то, что надо, с утра по разбираюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 22:22:51 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Эммм... А не вариант читать xml кусочками, править на лету (теги выкусить, скобки/запятые добавить и т.п.) и выдавать готовый SQL, который после (или сразу в конвейере) скормить клиенту БД...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2012, 23:10:01 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
XMLReader не справился, т.к. там первый тег содержит весь документ и как я понял он пытался его прочитать. Сделал с помощью xml_parser Код: php 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2012, 11:06:44 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
nexomam xml-parsing. об XMLReader`е я уже отписал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 07:36:54 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
HettXMLReader не справился, т.к. там первый тег содержит весь документ и как я понял он пытался его прочитать в любом валидном xml документе должен быть один корневой тег ) xml_parser как раз самое то, для больших файлов, ибо потоковый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 07:56:34 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
возможно я им как-то не правильно пользовался, но подходящего варианта не нашел и сам придумать на основе существующих методов не смог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 08:25:58 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. задумался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 10:53:11 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Этот скрипт предназначен для одноразового использования в домашних условиях. Коллекции в базе называются именем корневого тега. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 11:56:08 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
авторЭтот скрипт предназначен для одноразового использования в домашних условиях. Коллекции в базе называются именем корневого тега. Код: php 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 12:20:17 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
1. У вас имеются лишние присваивания self::$collection = NULL; 2. trim($a) != '' - вместо таких извратов лучше пользоватья функцией empty() 3. Не строка там быть не может, т.к. парсим XML как никак 4. В вашем коде заложена другая логика и он вызовет ошибку с параметром $name == null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 12:52:09 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
а нет, пардон, 4. пункт не в счет, но поведение все равно отличается, т.к. self::$collectionName не обнуляется в случае $name == null, так что все равно грубая ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 12:53:59 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 12:56:33 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
предлагаю, не писать так много и так часто - лучше подумать, и написать всё сразу одним постом! ;))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 13:05:09 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
считайте это были hotfix`ы ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 13:06:41 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
авторself::$collectionName не обнуляется в случае $name == null, так что все равно грубая ошибка. http://www.php.net/manual/en/mongocollection.getname.php P.S считайте это были hotfix`ы ) (C) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 13:20:49 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Да что мне мануал на монгу. При name = null условие Код: php 1. не выполнится и self::$collectionName останется прежним, а $collection = null будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 13:39:02 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
авторДа что мне мануал на монгу. наверное, что бы не писать всякую чушь в коде!!! ;) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Успехов!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 14:55:45 |
|
||
|
XML file
|
|||
|---|---|---|---|
|
#18+
Я знаю про этот метод, но я счел, что он будет обращаться к СУБД для выяснения текущей коллекции что сильно сказалось бы на производительности, а выяснять и проводить тесты мне было лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2012, 15:25:08 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37837230&tid=1465040]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
431ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 752ms |

| 0 / 0 |
