Нет, для этого не стоит пытаться написать свой собственный парсер XML.
SAX сам по себе очень легкий и быстрый, так что я не уверен, почему думаю, что это слишком много. Также использование буфера строк на самом деле было бы гораздо менее масштабируемым , чем использование SAX, потому что SAX не требует загрузки всего XML-файла в память для его использования. Я использовал SAX для разбора через многогигабайтных XML-файлов, которые вы не смогли бы сделать с помощью строковых буферов на 32-битной машине.
Если у вас есть небольшие файлы и вам не нужно беспокоиться о производительности, посмотрите на использование DOM. Реализация Java может быть немного раздражающей в использовании (Вы создаете документ с помощью DocumentBuilder, который идет с DocumentBuilderFactory)
Код для создания документа из файла выглядит следующим образом:
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new FileInputStream("file.xml"));
(обратите внимание, что сохранение ссылки на ваш конструктор документов ускорит процесс, если вам необходимо разобрать несколько файлов)
Затем вы используете функцию в org.w3c.dom.Document для чтения или манипулирования содержимым. Например getElementsByTagName() возвращает все элементы с определенным именем тега.
Это действительно зависит от типа XML, который вы разбираетесь. Я бы не написал свой собственный парсер, когда есть что-то уже там, чтобы сделать работу для вас.
Выбор SAX / DOM действительно основан на том, что вы пытаетесь разбираться, увидеть это для того, как решить, на каком использовании:
http://geekexplains.blogspot.com/2009/04/ SAX-VS-DOM-различия - между-DOM-and.html
Даже если вы не используете SAX / DOM, есть все еще простые варианты, доступные для вас, посмотрите на простой :)
http: / /simple.sourceforge.net/
you может также захотеть рассмотреть stax.
Вы можете использовать DOM4J / XSTREAM, чтобы прочитать XML в эквивалентный модаль Java, а затем использовать JSONLIB для преобразования в JSON.
Может быть, вы должны посмотреть на KXML 2, небольшой XML Pull Parser, специально разработанный для ограниченных сред, для доступа, анализа и отображения файлов XML для устройств с поддержкой Java 2 Micro. Это хорошо работает с Java Se / EE тоже ;-). Как оно предназначено для Micro Edition, это действительно легкий вес (маленький след), и ИМХО действительно простым в использовании (гораздо более проще, чем SAX / DOM и т. Д.).
Из моего собственного опыта работы с KXML 2: я использовал его для разбора файлов XML размером более 1 ГБ - свалки в Википедии, и я был очень доволен производительностью / потреблением памяти и т. Д.
;-) - Ссылка: http://kxml.sourceforge.net/kxml2/
Используйте настоящий анализатор XML. Если вы этого не сделаете, вы, вероятно, будете укушены, когда что-то изменится. Документ может быть «очень строгим», но через два года, что-то, вероятно, будет повторно фактически, и он изменит структуру так, чтобы он разобрался на одной и той же структуре данных с анализатором XML и разбивает анализатор струны домов.
Разборка на бэкэнде и разоблачении JSON, вероятно, является правильным способом идти так, чтобы у вас было бы данные общего назначения JSON, которые вы можете легко интегрироваться с другими источниками, но если у вас есть Простое сообщение, и это единственное место, где вы считаете, что вы бы использовали JSON, вы можете попытаться сделать сторону Client Parsing. У Dojo есть экспериментальный анализатор XML-анализатора клиента
Обязательно ли использовать XML?
Я обнаружил, что мой собственный текстовый формат намного быстрее, чем XML или JSON с любым из готовых пакетов - они были быстрыми, но, управляя моим собственным форматом и просто выполняя разбор строк, я смог сократить время вдвое по сравнению с самой быстрой реализацией XML.
Очевидно, что это работает, только если вы полностью контролируете форматы, и может не подходить для вашей ситуации, но для всех остальных в этой ситуации: не думайте, что XML - это абсолютно самый быстрый вариант, который у вас есть. Это не так.