Я уверен, что это, возможно, обсуждалось подробно или отвечалось ранее, однако мне нужно немного больше информации о наилучшем подходе для моей ситуации ...
Проблема: У нас есть некоторые большие XML-данные (от 100 КБ до 5 МБ), которые нам нужно накачать в объекты Java.Проблема в том, что данные на самом деле не очень хорошо отображаются на объекте, поэтому нам нужно только извлечь некоторые части данных и создать объекты.Учитывая это, такие решения, как JAXB или XStream, действительно не подходят.
Итак, нам нужно извлечь данные XML и поместить их в объекты Java с максимальной эффективностью.
Возможные решения: На мой взгляд, у нас есть 3 возможных решения:
- SAX-разбор
- DOM-разбор
- XSLT
Мы можем загрузитьXML в любую реализацию JAXP и извлеките данные одним из перечисленных выше методов.
Вопрос (ы) У меня есть несколько вопросов / проблем:
- Как XSLT работает под капотом?Это просто DOM-парсер?Я спрашиваю, потому что XSLT кажется хорошим способом, но я не очень хочу об этом думать, если он не даст нам лучшую производительность, чем DOM.
- Какие популярные библиотеки предоставляют DOM, XSLTи SAX XML парсеры?
- По вашему опыту, каковы причины выбора DOM, SAX или XSLT?Относится ли простота использования DOM или XSLT к улучшениям производительности, предлагаемым SAX?
- Есть ли какие-либо критерии?Те, что я нашел, старые (как в, 8 лет).Поэтому некоторые недавние тесты были бы признательны.
- Есть ли какие-либо другие решения, кроме описанных выше, которые я мог бы пропустить?
Edit: Несколько пояснений ... Вы можете использовать XSLT для непосредственного введения значений в объект Java ... обычно он используется для преобразования XML в какой-то другой XML, однако я говорю с точки зрения вызова метода из XSLT в java длявведите значение.Я до сих пор не понимаю, как именно работает процессор XSLT ... Как он подает XML в код XSLT, который вы пишете?