Большие XML-файлы и Разбиение на страницы, действительно ли это возможно?

Проблема

При открытии очень больших XML-файлов локально, на машине, это - почти уверенность, которую это возьмет возраст для того файла для открытия - это может часто означать компьютерные блокировки вниз, потому что это думает, что не отвечает.

Это - проблема при обслуживании пользователей резервные копии XML довольно сложных баз данных или систем, они используют - likehood их, способность открыть большие резервные копии, уже не говоря об используют их, является тонким.

Действительно ли разбиение на страницы возможно?

Я использую XSLT для представления читаемых резервных копий на пользователей. Этим тем же способом, был бы это быть возможным вытянуть только страницу во время данных, препятствовать тому, чтобы весь файл был считан сразу, таким образом вызвав проблемы выше.

Я предполагаю, что ответ просто нет - но я хотел бы знать, видел ли кто-либо еще те же проблемы и разрешил их.

Примечание: Это находится на локальной машине только, она не должна требовать интернет-соединения. JavaScript может использоваться, если он делает вещи легче.

6
задан jakeisonline 6 January 2010 в 15:29
поделиться

5 ответов

Пагинация с XSLT возможна, но, скорее всего, не приведет к желаемым результатам: Чтобы XSLT работал, весь XML-документ должен быть разобран в DOM-дерево.

Что вы можете сделать, так это поэкспериментировать с потоковыми преобразованиями: http://stx.sourceforge.net/

Или вы можете препроцессировать большой XML-файл, чтобы разрезать его на меньшие биты перед обработкой с помощью XSLT. Для этого я бы использовал инструмент командной строки типа XMLStarlet

3
ответ дан 17 December 2019 в 02:29
поделиться

HI, Я не знаю, какой язык программирования Вы используете, но в C# с помощью XMLReader я могу читать тег файла по тегу, а не весь файл. Таким образом, Вы можете прочитать только первую страницу и остановить чтение. Лучшие пожелания, Иордания

0
ответ дан 17 December 2019 в 02:29
поделиться

Одним из способов решения этой проблемы было бы разбиение больших XML-файлов на несколько меньших по размеру XML-документов. В зависимости от типа данных вы можете разделить или разделить файл любым количеством способов (например, Day, Transaction, Entity и т.д.)

Это, конечно же, вызовет ряд других проблем. Например, вам придется придумать специализированный парсер, если вам нужно просмотреть данные целиком или через разделы.

.
0
ответ дан 17 December 2019 в 02:29
поделиться

Верно, очень хороший вопрос!

Реализации XSLT, которые я знаю, требуют DOM, так что они обязательно получат доступ ко всему документу (хотя, возможно, это может быть сделано лениво)

В любом случае, вы должны взглянуть на VTD-XML: http://vtd-xml.sourceforge.net/

Новейший процессор SAXON XSLT также поддерживает рудиментарную поддержку того, что называется "Потоковая XSLT". Читайте об этом здесь: http://www.saxonica.com/documentation/index/intro.html

Тем не менее, резервное копирование баз данных, вероятно, не является правильным вариантом использования XML. Если вам приходится иметь дело с резервными копиями баз данных XML, я постараюсь как можно быстрее от них избавиться. То же самое касается журналов - линейный процесс должен работать, просто добавляя вещи. Я имею в виду, что было бы еще лучше, если бы XML позволял лес в качестве структуры верхнего уровня, но я думаю, что этого никогда не случится.

2
ответ дан 17 December 2019 в 02:29
поделиться

Редактор XMLMAX Virtual XML-редактор, прочитал, анализируют и отображают файл XML-файла 1 GIGABYTE в TreeView примерно за 30 секунд на быстрым ПК. Только ОС Windows. Он будет работать с XML любого размера или структуры.

1
ответ дан 17 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: