2013-06-10 2 views
2

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

Я сделал скромное исследование, чтобы рассказать о технологии для использования, но я не мог решить, что является лучшим языком программирования и API для моих требований. Я считаю, что DOM не вариант, потому что он потребляет много памяти, но будет ли Java с SAX-парсером соответствовать моим требованиям?

Некоторые люди также рекомендовали Python для синтаксического анализа XML. Это хорошо?

Буду признателен за ваш добрый совет.

+0

Python имеет очень простой и мощная библиотека под названием BeautifulSoup, которая отлично подходит для разбора XML. – karthikr

+0

Спасибо, karthikr очень много. Является ли красивое платье нежным по памяти и быстро? – mowienay

+0

Просьба указать «очень большой». Будет ли инженер просить о помощи построить мост через «очень широкую» реку? Кто-нибудь посмеет предложить предложения, не зная, насколько широка река? Я слышал, что люди относятся к 1Mb как очень большие. Решение для 1Mb сильно отличается от 1Gb. Вообще-то я был бы удивлен, если документ, предназначенный для потребления человеком, слишком велик, чтобы вписаться в память в эти дни - если нет большого количества изображений. –

ответ

1

SAX - очень хороший парсер, но он устарел.

Недавно Oracle запустили новый синтаксический анализатор для разбора файлов XML эффективно называемых Stax

http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/SJSXP2.html * *

Прикрепленного ссылка будет также показано сравнение всех анализаторов наряду с использованием памяти и ее особенностью.

Спасибо, Паван

2

Да, я думаю, что Sax будет работать на вас. Dom не подходит для больших файлов XML, поскольку он хранит весь XML-файл в памяти. Вы можете увидеть сравнение я написал в своем блоге here

1

Не уверен, что если вы заинтересованы в использовании Perl, но если вы открыты для него, следующие все хорошие варианты: LibXML, LibXSLT и XML-Twig, который хорошо для файлов, слишком больших для размещения в памяти (так же, как и LibXML::Reader). Конечно, SAX есть, но он может быть медленным. Большинство людей рекомендуют первые два варианта. Наконец, CPAN - удивительный источник с очень активным сообществом.

Смежные вопросы