рекомендуемый парсер для XML в Java (абсолютный новичок в XML) - PullRequest
1 голос
/ 06 мая 2010

какой парсер (java) вы бы порекомендовали для анализа данных GPX?Я ищу тот, который очень интуитивно понятен в использовании и не требует слишком много оперативной памяти (кажется, что DOM требует слишком много, не так ли?).Я понятия не имею о разборе xml, поэтому мне пора изучить это; -)

Мои документы не очень большие и всегда читаются дважды (точка для DOM), но я хочу сохранить какВ ОЗУ мало что возможно.

Что бы вы сделали в этой ситуации?Кого бы вы выбрали и почему?

Ответы [ 5 ]

3 голосов
/ 06 мая 2010

Если у вас нет особых причин использовать стороннюю библиотеку для анализа XML, я бы просто использовал стандартный Java API. Смотрите пакет javax.xml.parsers. Предполагая, что у вас есть XML в файле, вы можете разобрать его в org.w3c.dom.Document (также часть стандартного API Java), например:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File(filename));

Поскольку ваши файлы не так велики, использование DOM будет самым простым и очевидным выбором.

Вы можете использовать методы объекта Document и связанных объектов (см. Классы в пакете org.w3c.dom) для получения данных или использовать XPath (см. Пакет javax.xml.xpath).

JAXB, о котором упоминает Котидиан, также присутствует в стандартном API начиная с Java 6, но его настройка может быть немного сложнее, чем при использовании стандартного API DOM.

0 голосов
/ 06 мая 2010

Я бы начал с IDE, как Кислород .

0 голосов
/ 06 мая 2010

Я большой поклонник Apache Digester, поскольку он позволяет вам определять правила перевода и переходить прямо к объектам Java. Я думаю, что JaxB делает нечто подобное.

0 голосов
/ 06 мая 2010

В зависимости от того, что вы хотите сделать с xml, JAXB может быть возможным. Идея состоит в том, чтобы преобразовать xml в POJO, не связываясь (напрямую) с анализаторами. (Хотя при необходимости все еще можно связываться с анализаторами.) Кроме того, я обнаружил, что, поскольку JAXB входит в корневой пакет javax, он, как правило, лучше сочетается со стандартами.

0 голосов
/ 06 мая 2010

Я бы предложил XPP,

http://www.extreme.indiana.edu/xgws/xsoap/xpp/

Это более эффективный DOM и более простой в использовании, чем SAX.

STAX - это еще один парсерный анализатор popuplar,

http://stax.codehaus.org/Home

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