Java встроенный XML - PullRequest
       24

Java встроенный XML

9 голосов
/ 31 августа 2009

Есть ли в Java встроенная библиотека XML для генерации и анализа документов? Если нет, какой третьей стороной мне следует пользоваться?

Ответы [ 11 ]

7 голосов
/ 31 августа 2009

Sun Java Runtime поставляется с реализациями Xerces и Xalan, которые позволяют анализировать XML (через интерфейсы DOM и SAX), а также выполнять преобразования XSL и выполнять запросы XPath.

Однако для работы с XML лучше использовать API JAXP , поскольку JAXP позволяет вам не беспокоиться об используемой базовой реализации (Xerces или Crimson или любой другой). Когда вы используете JAXP, во время выполнения JRE будет использовать поставщика услуг, которого он может найти, для выполнения необходимых операций. Как указывалось ранее, Xerces / Xalan будет использоваться, поскольку он поставляется с Sun JRE (но не с другими), поэтому вам не нужно загружать и устанавливать определенного поставщика (скажем, другую версию Xerces или Crimson).

Базовое руководство по JAXP можно найти в Учебное пособие по J2EE 1.4 (оно из учебного руководства по J2EE, но оно поможет).

Обратите внимание, что реализации Xerces / Xalan, предоставляемые Sun JRE, не будут найдены в пакетах org.apache.xerces. * Или org.apache.xalan. *. Вместо этого они будут присутствовать во внутренних пакетах com.sun.org.apache.xerces. * И com.sun.org.apache.xalan. *.

Кстати, JDOM не является синтаксическим анализатором XML - он будет использовать анализатор, предоставленный ему JAXP , чтобы предоставить вам более простую абстракцию для работы.

4 голосов
/ 31 августа 2009

Да. У него есть два параметра в пакете javax.xml: DOM создает документы в памяти, а SAX - это подход, основанный на событиях.

Возможно, вы также захотите взглянуть на JDOM, стороннюю библиотеку, которая предлагает комбинацию из двух и может быть проще в использовании.

2 голосов
/ 31 августа 2009

Да. Java содержит javax.xml библиотеку. Некоторые образцы вы можете получить в Java API Sun для примеров кода XML .

Однако лично мне нравится использовать JDOM library .

1 голос
/ 31 августа 2009

Я не могу сказать вам, какой использовать (указано несколько требований, и есть это десяток библиотек), но я бы серьезно отнесся к XOM ( здесь ).

Написанный Элиоттом Расти Гарольдом, он довольно полон с точки зрения XML спец и вообще отлично. Я нашел это очень простым в использовании. Увидеть ссылка выше для мотивации Гарольда и критики других решений.

1 голос
/ 31 августа 2009

Java поставляется с большим набором пакетов и классов для обработки XML. Они являются частью JDK Standard Edition и находятся в пакете javax.xml.

Помимо чтения XML и записи его с DOM или SAX , эти пакеты также выполняют XSL-преобразования , JAX-B объект маршаллинг и демаршаллинг, XPath обработка и веб-сервисы SOAP обработка. Я советую вам прочитать больше об этом в отличных уроках Sun.

1 голос
/ 31 августа 2009

Взгляните на JAX-B Это все более и более «стандартный» способ обработки XML. Использует аннотации Java для упрощения модели программирования. Ссылка дает пример кода для чтения и записи XML.

1 голос
/ 31 августа 2009
Пакет

javax.xml содержит собственное XML-решение Java, которое на самом деле является специальной версией Xerces . Вы можете делать то, что просили, но использование сторонних библиотек, таких как JDOM , значительно упрощает весь процесс.

0 голосов
/ 31 августа 2009

Как сказано выше ... Java SDK теперь поставляется с Xerces и Xalan. Xalan реализует только версию 1.0 XSLT API, поэтому, если вы хотите 2.0, вам следует взглянуть на Saxon от Michael Kay.

0 голосов
/ 31 августа 2009

Вы можете использовать StAX (потоковый API для XML) http://en.wikipedia.org/wiki/StAX http://www.xml.com/pub/a/2003/09/17/stax.html https://sjsxp.dev.java.net/

StAx оптимизирован для обработки больших файлов xml без проблем с OOM (нехватка памяти):)

0 голосов
/ 31 августа 2009

Java API для обработки XML (JAXP) является частью стандартной библиотеки JavaSE. JAXP позволяет вам кодировать в соответствии со стандартным интерфейсом и позволяет вам при необходимости выбрать реализацию синтаксического анализатора.

API Java для обработки XML, или JAXP для краткости, позволяет приложения анализировать и преобразовывать документы XML используя API, который не зависит от конкретный процессор XML реализация. JAXP также обеспечивает функция подключаемости, которая позволяет приложения легко переключаться между конкретный процессор XML Реализации.

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