powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Разбить XML на несколько частей?
7 сообщений из 7, страница 1 из 1
Разбить XML на несколько частей?
    #38493186
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно в Linux разбить 1Гб xml файл на 50Мб кусочки, но чтобы они все были валидно структурированы как обычный XML?
...
Рейтинг: 0 / 0
Разбить XML на несколько частей?
    #38493261
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000,

Честно говоря, вообще слабо себе представляю, как решить такую задачу безотносительно ОС. Начиная с того, что "разрезанный" XML не можеть быть валидным по определению и заканчивая самыми разнообразными вариантами структуры внутри файла.

Изначально задача-то какая стоИт?
...
Рейтинг: 0 / 0
Разбить XML на несколько частей?
    #38493288
armix2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlinearmix2000,

Честно говоря, вообще слабо себе представляю, как решить такую задачу безотносительно ОС. Начиная с того, что "разрезанный" XML не можеть быть валидным по определению и заканчивая самыми разнообразными вариантами структуры внутри файла.

Изначально задача-то какая стоИт?

Очень большой файл, нужно его разбить на 10-20 мелких файлов.
...
Рейтинг: 0 / 0
Разбить XML на несколько частей?
    #38493292
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000,

Как Вы представляете себе результат с учетом Вашего пожелания чтобы все части были "валидно структурированы как обычный XML"? Можете привести пример на основе небольшого файла?

IMHO в общем виде можно говорить либо о банальной порезке файла на куски заданного размера без учета валидности структуры. Вполне рабочий вариант, если впоследствии планируется склеить фрагменты в исходный файл.
...
Рейтинг: 0 / 0
Разбить XML на несколько частей?
    #38493294
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000,

Сорь, не закончил...

Либо о разборе исходного файла с выделением отдельных его блоков (тегов) на некотором уровне вложенности. Такой вариант может оказаться вполне приемлемым когда заранее известна структура файла на некотором уровне и каждый блок этого уровня может быть рассмотрен как единая сущность, не зависящая от других. Типичный пример - логи.
...
Рейтинг: 0 / 0
Разбить XML на несколько частей?
    #38518748
Фотография nexoma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прим., лучше сразу уйти в потоковый парсер - xml stream parsing

ну, рассекать надо по узлам, это раз.
если вы предположили 10-20 и ~50 кусков, то у вас возникла мысль о возможности деления.

1) ищем (в линуксе есть парсеры) или пишем программу, которая, например по xpath находит эти самые 50 кусков, то есть узлов.
допустим путь будет /a/b/c (БЕЗ вариаций, у всех узлов одинаковый!) и вы получили почти искомые 50 кусков с путем //d/e/f/...

что-то типа @массив_узлов = findnodes('/xpath/a/b/c', $xml)

2) если вам следует восстановить и потерянный путь /a/b/c, то его следует добавить в полученные куски
<!-- добавляем -->
<a><b><c>

<!-- полученный кусок -->
<d>
<e>
<f>
...
</f>
</e>
</d>

</a></b></c>

чтото типа,

$кусок = @массив_узлов[индекс_куска_например_в_цикле].gettext()
$для_записи_в_файл = '<a><b><c>' . $кусок . '</a></b></c>'

или более сложный вариант, создать новый узел /a/b/c, включить в узел "c" полученный $кусок и вывести в файл

3) но, как правило все сложнее и файл навсегда останется тем же большим и работать с ним следует через потоковый парсинг для уменьшения размера исходного файла, который можно компрессировать.
...
Рейтинг: 0 / 0
Разбить XML на несколько частей?
    #38518822
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
armix2000обычный XMLПрям как "обычная база данных".
впрочем коллеги выше уже это подробно разжевали.

остается еще спросить "кто" будет "есть" полученную лапшу и не пропадет ли у него от этого "аппетит"?
Для чего (что за программа приемник) все эти "прыжки в ширину"?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Разбить XML на несколько частей?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]