XOM v/s javax.xml.parsers
Я хочу сделать читать простой файл XML. Я нашел простой способ сделать XML в Java
Есть также несколько доступных парсеров, которые просто хотят убедиться, каковы преимущества использования парсера XOM над парсером солнца
Какие-либо предложения?
3 ответа
XOM чрезвычайно быстр по сравнению со стандартным W3C DOM. Если это ваш приоритет, нет ничего лучше.
Тем не менее, это все еще API-интерфейс типа DOM, поэтому он неэффективен для памяти. Это не замена для SAX или STAX.
Возможно, вы захотите проверить этот вопрос о лучшей библиотеке XML и ее верхнем (XOM) ответе; много деталей о преимуществах XOM. (Оставьте комментарий, если что-то неясно; Питер Штибраны, кажется, знает XOM от и до.)
Как уже упоминалось, XOM очень быстрый и простой в большинстве задач по сравнению со стандартным javax.xml. Для примеров, смотрите эту статью в вопросе о простейшем способе чтения в XML-файле на Java. Я собрал несколько хороших примеров, которые заставляют XOM выглядеть довольно хорошо (и javax.xml довольно неуклюже) там.:-)
Лично я оценил XOM после оценки (как вы можете видеть в связанных постах); для любого нового Java-проекта я бы, скорее всего, выбрал XOM для обработки XML. Единственный недостаток, который я обнаружил, заключается в том, что он не поддерживает потоковую передачу XML напрямую (в отличие от dom4j, откуда я пришел), но с помощью простого обходного пути он может хорошо воспроизводить поток.
Как вам нужен доступ к вашим данным?
Если он однопроходный, вам не нужно строить дерево в памяти. Вы можете использовать SAX (быстро, просто) или StAX (быстрее, не так просто).
Если вам нужно сохранить дерево в памяти для навигации, XOM или JDOM - хороший выбор. DOM является выбором последней инстанции, будь то уровень 1, 2 или 3, с расширениями или без них.
Xerces, который является синтаксическим анализатором, включенным в Java (хотя вы должны получить обновленную версию от Apache и не использовать ту, что входит в комплект Java, даже в 6.0), также имеет встроенный потоковый интерфейс, называемый XNI.
Если вы хотите подключить другие готовые детали в цепочке, часто SAX или StAX работают хорошо, так как они могут построить свою собственную модель в памяти. Например, механизм Saxon XSLT / XQuery работает с DOM, SAX или StAX, но внутренне создает TinyTree (по умолчанию) или DOM (необязательно). DataDirect XQuery также работает с SAX, StAX или DOM, но очень любит StAX.