2010-11-10 6 views
3

Каковы наилучшие способы свести к минимуму боль при реализации саксового парсера для построения дерева объектов? Например, в каком методе вы создаете объекты Java и где их сохраняете, как вы храните и используете стек для сложных иерархий, как вы обрабатываете атрибуты и как вы обрабатываете вложенные элементы? Как вы обрабатываете символьные данные?Sax parsing best practices

В основном, где основные функции подходят для облегчения жизни?

+0

Зачем вам нужен саксовый парсер? Их много. Какое дерево объектов вы хотите построить? – khachik

+0

Мне кажется, что он использует SAX для создания ограниченной DOM. –

+0

просто используя sax для разбора xml со схемой, не создавая новый парсер. – gtrak

ответ

2

Я часто использую Dom4j's SAXReader с ElementHandler до build mini-DOM chunks of a large XML file.

Есть несколько вещей, которые нужно иметь в виду:

  1. вызова elementPath.getCurrent(), чтобы получить фактический элемент в вашем onEnd().
  2. Не забудьте позвонить в element.detach() в конце вашего способа onEnd().
  3. Путь, который вы передаете addHandler(String, Handler), не является xpath: это всего лишь a '/'-separated Path stack.
+0

Forsooth! Предварительный просмотр ответа обработал мою ссылку-ссылку должным образом, но опубликованный ответ испортил это! Редактирование ... –