Сравнение API синтаксического анализа XML на платформе Java SE - PullRequest
2 голосов
/ 13 июля 2010

В настоящее время я занимаюсь разработкой программы чтения RSS-каналов, и мне интересно, какой API синтаксического анализа XML подойдет для этого лучше всего.(Обратите внимание, что я не ищу библиотеку синтаксического анализатора каналов - это просто отправная точка для этого исследования XML API)

Я ищу краткое изложение различных API синтаксического анализа XML на платформе Java,сосредоточив внимание на следующих критериях:

  • Простота настройки
    • Является ли конфигурация отдельным файлом?
    • Существуют ли разумные значения по умолчанию?
  • Удобство использования
    • Навигация по узлу - для братьев и сестер, для детей, для родителя.
    • Доступ / манипулирование пространствами имен, атрибутами, текстом.
    • Является ли иерархия классов продуманной или естественной?
  • Неверный XML - что происходит (когда он терпит неудачу?) и что я могу сделать, если:
    • обнаружен недопустимый символ (запрещено в кодировке или в спецификации XML)
    • структура дерева недопустима (например, из-за отсутствия экранированияHTML-теги)

Вот некоторая информация, которую я считаю полезной, но не крайне важной:

  • Сравнение производительности
  • Списокдоступных реализаций

В настоящее время я рассматриваю любой API-интерфейс XML на JVM.

  • Это может быть стандарт Java (DOM, SAX, StAX, JAXP) илиAPI для конкретной реализации.
  • Это может быть API для любого языка в JVM (Scala, Groovy, Jython, JRuby ...) - просто убедитесь, что он добавляет что-то по сравнению со стандартными API-интерфейсами Java.

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

Ответы [ 2 ]

0 голосов
/ 15 июля 2010

Смотри сюда, ты получишь горсть!http://www.xml.com/pub/rg/Java_Parsers

Но я видел, как некоторые из моих друзей использовали этого в своих проектах.Хотя JAXP широко используется, он выглядит многообещающе.

Парсер Apache Xerces версии 1.2.3 (http://xerces.apache.org/xerces-j/)

0 голосов
/ 14 июля 2010

jaxp - это не реализация, а API-интерфейс оболочки / фасада, в который можно добавить несколько реализаций парсера. Таким образом, вы остаетесь с саксофоном, DOM и Stax. ниже приведены два хороших сравнения, и вы посчитаете:

http://techstop.abidshafiq.com/2010/02/java-xml-api-comparison/ http://java.sun.com/performance/reference/whitepapers/StAX-1_0.pdf

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