Как я могу динамически unmarshal XML в Java? - PullRequest
1 голос
/ 05 октября 2019

У меня есть очень большой XML для демаршалирования. Я не хочу создавать классы POJO для этого, потому что это будет означать создание около 20 классов. Есть ли способ, которым я могу демонтировать это динамически, то есть без создания классов POJO?

Редактировать: Вот ссылка на статью для демаршала (https://www.ncbi.nlm.nih.gov/pubmed/31297574/?report=xml&format=text)

Я хочу прочитать эти данные и сохранить их где-то в моей базе данных.

Я пытаюсьсделать это с jaxb.

Ответы [ 2 ]

2 голосов
/ 05 октября 2019

Термин «unmarshal» обычно используется для обозначения процесса парсинга XML и генерации пользовательских объектов POJO. Если вы хотите использовать вместо этого универсальные объекты Java, тогда вам нужна одна из моделей универсального дерева XML. Большинство людей используют DOM, которая является самой старой и худшей из моделей, но используется по умолчанию, поскольку поставляется в комплекте с платформой Java;Моя собственная рекомендация: JDOM2 или XOM.

Если вы не хотите создавать собственные классы, то не хотите использовать JAXB.

Вы не сказали подробното, чего вы хотите достичь, но для многих операций XML использование XSLT или XQuery будет намного проще, чем использование Java (поскольку обработка XML - это то, для чего они были разработаны).

0 голосов
/ 06 октября 2019

Вы можете проверить библиотеку DSM . Он предназначен для обработки сложных документов XML и JSON при чтении документа. Вы определяете определение отображения в формате yaml, поэтому вам не нужно создавать классы для демаршалирования. DOM API загружает весь XML в память, так что вы не можете использовать DOM с большим XML. Но DSM использует потоковый анализ, поэтому вы не столкнетесь с проблемами с памятью. Использовать DSM проще, чем DOM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...