|
|
|
| PHPExpertEditor - не берёт. Слишком большой файл.
Чем тогда его открывать?
Желательно, чтобы XML подсвечивался и валидность проверялась | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 10:12)
| | браузер тоже не берет? :) | |
|
|
|
|
|
|
|
для: Trianon
(13.01.2009 в 10:16)
| | Вот так совет!
Опера в начале стала показывать всё сплошным текстом, а потом зависла.
Пришлось её насильно выключать. | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 11:00)
| | Зачем тогда вообще такой файл нужен? Если его и браузеры не берут... | |
|
|
|
|
|
|
|
для: coloboc66
(13.01.2009 в 11:37)
| | >Зачем тогда вообще такой файл нужен? Если его и браузеры не берут...
XML - это не HTML.
XML вообще не для браузеров придуман. У него много разных применений.
Для браузеров есть XHTML, но это не мой случай.
Впрочем, возможно, какие-то браузеры могут и отображать XML, но я просто не в курсе.
Честно, говоря, о браузерах даже не подумал, они как-то отфильтровались сами собой из списка возможных претендентов в моей голове так как всегда считал, что браузеры изначально делались под маленькие файлы.
0.5Г - для них будет уже великоват, кажется. | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 15:25)
| | Если файл такой большой, то скорее всего он не для ручной правки. Попробуйте распарсить (хорошее слово, верно?) | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 15:25)
| | А в какой области такие здоровые файлы используются, если не секрет?
Распарсить такой огромный файл сложновато будет. Надо все эти полгига в память загонять, либо писать какой-то хитрый алгоритм разбиения файла на более мелкие составляющие. | |
|
|
|
|
|
|
|
для: Axxil
(13.01.2009 в 15:54)
| | > Надо все эти полгига в память загонять
С какой радости? | |
|
|
|
|
|
|
|
для: BinLaden
(13.01.2009 в 15:56)
| | Ну расскажи как правильно | |
|
|
|
|
|
|
|
для: Axxil
(13.01.2009 в 15:58)
| | Представить в виде древа. Давать ссылки "ветви", как это обычно можно увидеть на сайтах с древовидной навигацией. Явно запихивать весь контент в память не будет нужно. | |
|
|
|
|
|
|
|
для: BinLaden
(13.01.2009 в 16:18)
| | А непосредственно парсить сам xml файл, чтобы "представить его в виде дерева" как будешь?
Насколько я понимаю, чтобы осуществлять навигацию по xml докумену (тот же xpath), в любом случае надо прочитать его весь в память для создания в ней удобной для навигации структуры (отбросить теги и создать массив или объект). | |
|
|
|
|
|
|
|
для: Axxil
(13.01.2009 в 17:06)
| | Поскольку ТС не раскрыл секрета о том, для чего ему нужен такой большой файл и как он получается, то, может быть, мой совет его и не устроит.
А суть такая.
Если этот файл создается скриптом ТС, то можно формировать несколько менее крупных файлов непосредственно в процессе создания по аналогии с тем, как создается сайтмапа для большого сайта (через индекс).
Если же файл уже приходит в таком виде, то можно попробовать загнать его в программу формирования сайтемапы в папку готовых файлов и затем с помощью этой же программы переформировать в пакет файлов меньшего размера. Я это делал с файлами по 20-30 мбайт. | |
|
|
|
|
|
|
|
для: Владимир55
(13.01.2009 в 20:04)
| | >
>Если же файл уже приходит в таком виде, то можно попробовать загнать его в программу формирования сайтемапы в папку готовых файлов и затем с помощью этой же программы переформировать в пакет файлов меньшего размера. Я это делал с файлами по 20-30 мбайт.
Проблема у меня возникает если файл приходит изначально крупненький.
В других ситуациях я своими силами справляюсь.
Хочется посмотреть его разметку, чтобы подумать как можно распарсить, хочется разрезать его на кусочки приемлемые для PHP итд, а чем это сделать - не понятно.
Что это за программа : "формирования сайтемапы"? | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 21:16)
| | "Что это за программа : "формирования сайтемапы"?"
Да их много разных - в Гугле для ВЭБмастера есть ссылки. Что то типа вот этого http://www.microsystools.com/
Поскольку у меня с английским напряженка, то знакомство поверхностное - что-то скачал, попробовал и стер...
"Хочется посмотреть его разметку"
Но ведь для этого достаточно небольшого кусочка. Можно ДОСом отрезать.
А еще я иногда использую WordPad - он 3 гига открывает (по идее, не пробовал). | |
|
|
|
|
|
|
|
для: Владимир55
(13.01.2009 в 21:29)
| | WordPadом открывал файл размером 130Мб. Большего размера не требовалось, поэтому не знаю, но думаю откроет ) | |
|
|
|
|
|
|
|
для: ddhvvn
(13.01.2009 в 22:38)
| | >WordPadом открывал файл размером 130Мб. Большего размера не требовалось, поэтому не знаю, но думаю откроет )
Да WordPad открывает.
Но как-то не очень ...
Хотелось бы хотя бы подсветку.
Или он может, но я не знаю? | |
|
|
|
|
|
|
|
для: Eugene77
(14.01.2009 в 13:14)
| | Попробуйте notepad++. Заявлено, что он "...базируется на компоненте Scintilla (очень мощном компоненте для редактирования) написанном на C++ с использованием только Win32 API и STL (что гарантирует максимальную скорость выполнения при минимальном размере программы)..." | |
|
|
|
|
|
|
|
для: Axxil
(13.01.2009 в 17:06)
| | > А непосредственно парсить сам xml файл, чтобы "представить его в виде дерева" как будешь?
Важно не то как
> в любом случае надо прочитать его весь в память
..., а важно то, что без разницы откуда: прямо из файла или из памяти. Поэтому перегонять зачем-то все данные из файла в память не имеет никакого смысла. | |
|
|
|
|
|
|
|
для: BinLaden
(13.01.2009 в 22:16)
| | Ладно.
Дано: 0.5 Гб xml файл и любой язык программирования без библиотек работы с xml.
Задача: вывести элемент максимального уровня вложенности.
Ограничения сервера - 32 Мб оперативной памяти.
Как будешь решать?
Естественно полностью программу писать не надо. Интересует алгоритм действий. | |
|
|
|
|
|
|
|
для: Axxil
(14.01.2009 в 09:24)
| | Замечательная задача.
Может в задачи её? | |
|
|
|
|
|
|
|
для: Trianon
(14.01.2009 в 09:43)
| | Я только за.
Мне интересно кто какой алгоритм предложит.
Только вот как будет оцениваться скорость, работоспособность алгоритмов без тестов? | |
|
|
|
|
|
|
|
для: Axxil
(14.01.2009 в 10:44)
| | Без тестов -- никак. Поэтому будут тесты :) | |
|
|
|
|
|
|
|
для: Trianon
(14.01.2009 в 09:43)
| | Я уже написал решение. На файле google.com/sitemap.xml выполняется за 6 секунд. На 500 МБ файле будет примерно 13 минут. | |
|
|
|
|
|
|
|
для: Саня
(14.01.2009 в 15:30)
| | На каком языке?
На какой машине выполняется? | |
|
|
|
|
|
|
|
для: Axxil
(14.01.2009 в 16:09)
| | PHP 5.2.6, Apache 2.2.9. Машина WinXP Pro SP2, Celeron D 2,93 ГГц, 512 МБ ОЗУ.
А что, на язык ограничений нет? | |
|
|
|
|
|
|
|
для: Саня
(14.01.2009 в 16:19)
| | >А что, на язык ограничений нет?
Есть ограничение на память сверху (32 Мб) и размер файла снизу (500 Мб).
> На 500 МБ файле будет примерно 13 минут.
Такая экстраполяция вряд ли верна. Так как отличное выполнение на маленьком файле не страхует от ошибок нехватки памяти для больших.
Попробуйте сгенерировать xml файлик в полгига и разобрать его вашим решением для выставленных для php ограничений memory_limit = 32 Мб. Если получится, то решение правильное. | |
|
|
|
|
|
|
|
для: Axxil
(14.01.2009 в 16:27)
| | Мне кажется зависимость линейная. Алгоритм итерационно считывает по килобайту из файла и разбирает. Кстати, от размера считываемой строки на зависит общая скорость отработки (по крайней мере находится в пределах погрешности измерений на 4 МБ файле). Сейчас попробую сгенерировать огромный XML и протестировать на нём. | |
|
|
|
|
|
|
|
для: Саня
(14.01.2009 в 16:34)
| | Итак. Весь апач занимал в памяти 4600 КБ и потреблял 98% процессора. Однако это не мешало мне слушать винамп, серфить интернет в опере на 15 вкладках, кодить в eclipse... и делать всё это с комфортом. Директива memory_limit = 32M
+-------------------+--------------------+
| Размер файла (МБ) | Время поиска (сек) |
+-------------------+--------------------+
| 4 | 6 |
| 215 | 459 |
| 545 | 1217 |
+-------------------+--------------------+
|
| |
|
|
|
|
|
|
|
для: Саня
(14.01.2009 в 18:03)
| | скрипт не покажете? | |
|
|
|
|
|
|
|
для: Axxil
(15.01.2009 в 14:18)
| | Может все-таки задачу сделаем? | |
|
|
|
|
|
|
|
для: BinLaden
(15.01.2009 в 18:06)
| | Хеопса нету :( | |
|
|
|
|
|
|
|
для: Axxil
(15.01.2009 в 14:18)
| | Если до понедельника не будет задачи, то покажу. | |
|
|
|
|
|
|
|
для: Саня
(16.01.2009 в 11:06)
| | Её и не будет, если никто не возьмет на себя труд составить формальное условие и объявить регламент ( формат ответов, методика оценки, срок подведения итогов. ) | |
|
|
|
|
|
|
|
для: Trianon
(16.01.2009 в 11:11)
| | Боюсь, это не в компетенции "простых смертных". | |
|
|
|
|
|
|
|
для: BinLaden
(16.01.2009 в 12:10)
| | было бы желание | |
|
|
|
|
1.8 Кб |
|
|
для: Trianon
(16.01.2009 в 11:11)
| | Ну тогда вот. | |
|
|
|
|
|
|
|
для: Саня
(16.01.2009 в 12:39)
| | хм...
код странный.
Полностью пока не вникал.
Но на вскидку сразу же проблемка: что будете делать, если открывающий тег находится в одном блоке считанных из файла данных, а закрывающий в другом? | |
|
|
|
|
|
|
|
для: Axxil
(16.01.2009 в 12:57)
| | Там в коде есть флаг на этот случай. | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 15:25)
| | XML вообще не для браузеров придуман. У него много разных применений. - Просветите пожалуйста, для чего он придуман и какие у него ещё применения. Я так полагаю, что придуман он как-раз для браузеров, а вот потом его стали применять куда попало... | |
|
|
|
|
|
|
|
для: coloboc66
(13.01.2009 в 17:39)
| | Приведу цитату из статьи "XML в 10 тезисах":
XML — это способ записи структурированных данных. Под "структурированными данными" обычно подразумевают такие вещи, как электронные таблицы, адресные книги, конфигурационные параметры, финансовые транзакции, технические чертежи и так далее. XML представляет собой набор правил (вы можете также считать их инструкциями или соглашениями) для разработки текстовых форматов, которые позволят вам структурировать ваши данные. | |
|
|
|
|
|
|
|
для: Eugene77
(14.01.2009 в 13:03)
| | ИМХО: Так вот XML и разрабатывался в качестве альтернативы базам данных (наподобие mysql) для отображения этих данных в браузере (конечно с помощью скриптов). Ни разу не встречал XML, ни каким боком не связанный с интернетом. XML - это язык размётки данных, а XTML - язык размётки веб-страницы. Это совсем разные вещи, но обе предназначены для браузеров. | |
|
|
|
|
автор: xx7 (13.01.2009 в 20:10) |
|
|
для: Eugene77
(13.01.2009 в 15:25)
| | резать , каким-нибудь while(.... fgets(....
и можно будет всем чем хочется просмотреть ,а потом можно обратно склеить при желании | |
|
|
|
|
|
|
|
для: Eugene77
(13.01.2009 в 10:12)
| | >PHPExpertEditor - не берёт. Слишком большой файл.
>Чем тогда его открывать?
>Жтелелаьно, чтобы XML подсвечивался и валидность проверялась
Я советую посмотреть здесьhttp://geek-nose.com/chem-otkryt-xml-fajl-5-luchshix-programm/.Я тоже не могла открыть,был тоже большой файл,полазила по форумам и нашла эту ссылку и пять минут работы и все,и это учитывая что я девушка))))) | |
|
|
|