Четыре метода анализа XML-файлов в Java «Рекомендуемая коллекция»
Четыре метода анализа XML-файлов в Java «Рекомендуемая коллекция»

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

【Абстрактный】 Расширяемый язык разметки (XML) обладает уникальными техническими преимуществами в реализации стандартизации информации, ее обмена и совместного использования, поэтому он получил широкое внимание. В этой статье сначала кратко представлены базовые знания XML, затем обобщаются четыре наиболее распространенных сегодня метода анализа XML, начиная с XML-приложений, и представлены характеристики этих четырех методов, включая их преимущества и недостатки. Наконец, дан простой случай, чтобы представить код для этих четырех типов анализа.

【Ключевое слово】 XML-файлы, DOM, SAX, JDOM, DOM4J

【Введение】 XML — это расширяемый язык разметки (EXtensible Markup Language), который является подмножеством стандартного универсального языка разметки. Это язык разметки, используемый для маркировки электронных документов, чтобы сделать их структурированными. Теги относятся к информационным символам, понятным компьютерам. То есть с помощью таких тегов компьютеры могут обрабатывать различную информацию, например статьи и т. д. Как определить эти теги, вы можете выбрать международно признанный язык разметки, например HTML, или использовать язык разметки, например XML. Это расширяемость языка. XML упрощен и модифицирован по сравнению с SGML. В основном он использует XML, XSL, XPath и т. д.

Проще говоря, XML — это язык описания данных. Хотя это и язык, он обычно не выполняет основную функцию обычного языка — распознавание и управление компьютером. Полагайтесь только на другой язык для его интерпретации, чтобы он достиг желаемого эффекта или был принят компьютером. Как мы все знаем, существует все больше и больше методов анализа XML, но основных методов всего четыре, а именно DOM, SAX, JDOM и DOM4J.

1. XML-приложение Аспекты приложения XML можно в основном разделить на два типа: один — XML типа документа, а другой — XML типа данных. Вот некоторые распространенные приложения XML: 1、НастроитьXML+XSLT=>HTML,Это, пожалуй, одно из наиболее распространенных приложений для работы с документами. XML этого типа документа хранит XML-данные всего документа.,Затем XSLT преобразует и анализирует XML.,В сочетании с HTML-тегами в XSLT.,в конечном итоге становится HTML,Это будет отображаться в браузере. То есть в процессе преобразования XSLT использует XPath для определения одной или нескольких совпадающих частей исходного документа. При обнаружении соответствия XSLT преобразует совпадающую часть исходного документа в результирующий документ, в то время как совпадающая часть шаблона остается в результате неизмененной.

2. XML — это микробаза данных, которая является одним из наиболее распространенных приложений типов данных. Мы используем соответствующие XML API (MSXML DOM, Java DOM и т. д.) для доступа к XML и его запроса. Стоит отметить, что «микробаза данных» означает, что в среде с небольшим объемом данных, небольшим количеством пользователей и низкими требованиями к производительности XML-документы могут использоваться в качестве базы данных, но она не подходит для большого количества пользователей и высокой производительности. интеграция данных и операционные среды с высокими требованиями к производительности. Примером того, где XML подходит для использования в качестве «базы данных», является файл .ini, который содержит информацию о конфигурации приложения.

3. В качестве данных связи. Наиболее типичным из них является веб-сервис, использующий XML для передачи данных. Его можно просто описать как сначала создание XML-файла, добавление информационных узлов для хранения в XML-файле, а затем передачу XML на страницу, которая хочет получить данные. После того, как страница получает XML-файл, она анализирует его. XML-файл. Лучше всего конвертировать XML. Информация об узлах в файле отображается на странице.

4. В качестве данных конфигурации для некоторых приложений. Наиболее распространенными из них являются web.xml, используемые при настройке веб-сервера J2EE.

5. Формат XML некоторых других документов. Например, Word, Excel и т. д.

6. Сохраните связь между данными. Например, спящий режим.

Вышеупомянутые шесть XML-приложений в основном охватывают основные области применения XML.

Ниже представлены четыре метода Java для анализа XML-файлов.

2. Методы анализа XML-файлов 1. DOM (объектная модель документа)

DOM — это официальный стандарт W3C для представления XML-документов независимым от платформы и языка способом. DOM — это набор узлов или фрагментов информации, организованных в иерархическую структуру. Эта иерархия позволяет разработчикам искать в дереве конкретную информацию. Анализ этой структуры обычно требует загрузки всего документа и построения иерархии, прежде чем можно будет выполнить какую-либо работу. Потому что он основан на информационной иерархии. Поэтому DOM считается древовидным или объектным. DOM и древовидная обработка в целом имеют ряд преимуществ. Во-первых, поскольку дерево постоянно хранится в памяти, его можно модифицировать, чтобы приложение могло вносить изменения в данные и структуры. Он также позволяет в любое время перемещаться вверх и вниз по дереву, а не выполнять одноразовый процесс, как SAX. DOM также намного проще в использовании. 【преимущество】 1) Формируется древовидная структура, которая интуитивно понятна и проста для понимания, а код легче писать. 2) В процессе анализа древовидная структура сохраняется в памяти для удобства модификации. 【недостаток】 1) Когда XML-файл большой, потребление памяти относительно велико, что легко влияет на производительность синтаксического анализа и может вызвать переполнение памяти.

2、SAX(Simple API for XML)

Преимущества обработки SAX очень похожи на преимущества потокового мультимедиа: анализ можно начать немедленно, не дожидаясь обработки всех данных. Кроме того, поскольку приложение просто проверяет данные по мере их чтения, нет необходимости хранить их в памяти. Это огромное преимущество для больших документов. Фактически, приложению даже не нужно анализировать весь документ; оно может прекратить анализ при выполнении определенного условия. В целом SAX намного быстрее, чем его замена DOM.

ДОМ или САКС? Для разработчиков, которым необходимо написать собственный код для обработки XML-документов, выбор модели анализа DOM или SAX является очень важным проектным решением. DOM использует древовидную структуру для доступа к XML-документам, тогда как SAX использует модель событий. Анализатор DOM преобразует XML-документ в дерево, содержащее его содержимое, и может перемещаться по дереву. Преимущество использования DOM для анализа модели заключается в простоте программирования. Разработчикам достаточно вызвать инструкции по построению дерева, а затем использовать API навигации для доступа к необходимым узлам дерева для выполнения задачи. Элементы дерева можно легко добавлять и изменять. Однако, поскольку при использовании анализатора DOM необходимо обработать весь XML-документ, требования к производительности и памяти относительно высоки, особенно при работе с большими XML-файлами. Благодаря своим возможностям обхода анализаторы DOM часто используются в сервисах, где XML-документы должны часто изменяться.

Анализатор SAX использует модель, основанную на событиях. Он может запускать серию событий при анализе XML-документа. Когда заданный тег найден, он может активировать метод обратного вызова, чтобы сообщить методу, что указанный тег найден. SAX обычно требует меньше памяти, поскольку позволяет разработчикам решать, какие теги обрабатывать. Масштабируемость SAX проявляется лучше, особенно когда разработчикам нужно обработать только часть данных, содержащихся в документе. Но при использовании парсера SAX кодирование усложняется, и трудно получить одновременный доступ к нескольким различным данным в одном и том же документе. 【преимущество】 1) Нет необходимости ждать обработки всех данных, анализ можно начать сразу. 2) Данные проверяются только при чтении и их не нужно сохранять в памяти. 3) Вы можете остановить парсинг при выполнении определенного условия, не парсируя весь документ. 4) Высокая эффективность и производительность, возможность обработки документов, размер которых превышает системную память. 【недостаток】 1) Приложение должно отвечать за логику обработки TAG (например, за поддержание родительско-дочерних отношений и т. д.). Чем сложнее документ, тем сложнее программа, а значит, ее сложнее кодировать. 2) Односторонняя навигация затрудняет одновременный доступ к нескольким различным данным в одном и том же XML.

3、JDOM(Java-based Document Object Model)

Цель JDOM — стать моделью документа, специфичной для Java, которая упрощает взаимодействие с XML и работает быстрее, чем использование реализации DOM. JDOM активно продвигался и продвигался с тех пор, как это была первая модель, специфичная для Java. Его возможное использование рассматривается как «Расширение аннотаций Java» через «Запрос спецификации Java JSR-102».

Между JDOM и DOM есть два основных различия. Во-первых, JDOM использует только конкретные классы, а не интерфейсы. Это в некотором смысле упрощает API, но также ограничивает гибкость. Во-вторых, API широко использует класс Collections, упрощая его использование для разработчиков Java, которые уже знакомы с этими классами. Заявленная цель документации JDOM — решить 80% (или более) проблем Java/XML, затрачивая 20% (или меньше) усилий. JDOM, безусловно, полезен для большинства приложений Java/XML, и большинство разработчиков находят API гораздо более простым для понимания, чем DOM. JDOM также включает в себя довольно обширные проверки поведения программы, чтобы пользователи не могли делать что-либо, что не имеет смысла в XML. Однако для того, чтобы делать больше, чем просто основы, по-прежнему требуется хорошее понимание XML.

Сам JDOM не содержит парсера. Обычно он использует анализатор SAX2 для анализа и проверки входных XML-документов (хотя он также может принимать в качестве входных данных ранее созданные представления DOM). Он содержит преобразователи для вывода представлений JDOM в потоки событий SAX2, модели DOM или текстовые документы XML. JDOM — это продукт с открытым исходным кодом, выпущенный по варианту лицензии Apache. 【преимущество】 1) Использование конкретных классов вместо интерфейсов упрощает DOM API. 2) Широкое использование класса Java Collections, что удобно для Java-разработчиков.

【недостаток】 1) Лучшей гибкости не существует. 2) Плохая производительность.

4、DOM4J(Document Object Model for Java)

Хотя DOM4J представляет собой полностью независимую разработку, изначально он был интеллектуальным ответвлением JDOM. Он включает в себя множество функций, выходящих за рамки базового представления документов XML. Включает встроенную поддержку XPath, поддержку XML-схемы и обработку на основе событий для больших или потоковых документов. Он предоставляет возможности для создания представлений документов с возможностями параллельного доступа через DOM4J API и стандартный интерфейс DOM.

Для поддержки всех этих функций DOM4J использует интерфейсы и методы абстрактного базового класса. Умный форк JDOM. Он включает в себя множество функций, выходящих за рамки базового представления документов XML, включая встроенную поддержку XPath, поддержку XML-схемы и обработку на основе событий для больших или потоковых документов. Он также предоставляет возможность создавать документы с возможностями параллельного доступа через DOM4J API и стандартный интерфейс DOM.

Для поддержки всех этих функций DOM4J использует интерфейсы и методы абстрактного базового класса. DOM4J активно использует класс Collections в API, но во многих случаях он также предоставляет альтернативы, которые обеспечивают лучшую производительность или более прямой подход к кодированию. Прямым преимуществом является то, что, хотя DOM4J платит за более сложный API, он обеспечивает гораздо большую гибкость, чем JDOM. Несмотря на добавление гибкости, интеграцию с XPath и управление большими документами, цели DOM4J такие же, как и у JDOM: простота использования и интуитивно понятное управление для разработчиков Java. Он также стремится стать более полным решением, чем JDOM, и позволяет решать практически все проблемы Java/XML. При достижении этой цели он уделяет меньше внимания, чем JDOM, предотвращению некорректного поведения приложений. DOM4J — это отличный Java XML API с отличной производительностью, мощными функциями и чрезвычайной простотой использования. Это также программное обеспечение с открытым исходным кодом. В настоящее время вы можете видеть, что все больше и больше программного обеспечения Java используют DOM4J для чтения и записи XML. Особо стоит отметить, что JAXM от Sun также использует DOM4J. 【преимущество】 1) Широкое использование классов-коллекций Java для облегчения работы разработчиков Java и предоставления некоторых альтернатив, обеспечивающих производительность. 2) Отличные характеристики, хорошая гибкость, мощные функции и простота использования. 【недостаток】 1) Используется большое количество интерфейсов, а API относительно сложен.

3. Сравнение четырех методов анализа. 1. DOM4J имеет лучшую производительность. JAXM от Sun также использует DOM4J. В настоящее время многие проекты с открытым исходным кодом используют DOM4J. Например, Hibernate также использует DOM4J для чтения файлов конфигурации XML. Если переносимость не имеет значения, используйте DOM4J.

2. JDOM и DOM работали плохо во время тестирования производительности, а память переполнялась при тестировании документа размером 10 МБ. Также стоит рассмотреть возможность использования DOM и JDOM в случае небольших документов. Хотя разработчики JDOM заявили, что они планируют сосредоточиться на проблемах производительности до официального выпуска, с точки зрения производительности им действительно нечего рекомендовать. Кроме того, DOM по-прежнему остается очень хорошим выбором. Реализация DOM широко используется во многих языках программирования. Он также является основой для многих других стандартов, связанных с XML, и, поскольку он официально рекомендован W3C (в отличие от нестандартной модели Java), он также может потребоваться в определенных типах проектов, таких как использование DOM в JavaScript.

3. SAX работает лучше, что зависит от его конкретного метода синтаксического анализа, управляемого событиями. SAX обнаруживает входящий XML-поток, но не загружает его в память (конечно, пока XML-поток читается, некоторые документы будут временно скрыты в памяти).

4. Если XML-документ большой и проблемы с переносимостью не рассматриваются, вы можете использовать DOM4J, если XML-документ небольшой, вы можете использовать JDOM, если вам нужно обработать его своевременно без сохранения данных, вы можете рассмотреть; САКС.

4. Четыре типа примеров анализа 1. Анализ XML с использованием метода DOM. 2. Используйте SAX для анализа XML 3. Используйте JDOM для анализа XML 4. Используйте DOM4J для анализа XML

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/136234.html Исходная ссылка: https://javaforall.cn

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода