#xml #language-agnostic #xml-parsing #sax #smalltalk
#xml #не зависит от языка #синтаксический анализ xml #sax #smalltalk
Вопрос:
Учитывая большой XML, я хочу иметь ЧАСТЬ структуры XML в виде дерева в памяти (ЭТО НЕ DOM !!), например, учитывая
<MAIN>
<A>
<B>1</B>
<C>2</C>
<D>3</D>
<H>7</H>
<I>9</I>
<E>2</D>
</A>
<A>
<B>4</B>
<C>5</C>
<D>6</D>
<H>3</H>
<I>0</I>
<E>3</D>
</A>
</MAIN>
после того, как пользователь выберет узлы B и H, я хочу иметь в памяти
<MAIN>
<A>
<B>1</B>
<C>2</C>
<D>3</D>
<H>7</H>
</A>
<A>
<B>4</B>
<C>5</C>
<D>6</D>
<H>3</H>
</A>
</MAIN>
иногда пользователь хочет выполнить фильтрацию по содержимому узла, например, по всем B-узлам, превышающим 3, и т.д.
существует ли библиотека (SAX?) для выполнения такой задачи? предпочтительно на Smalltalk, но подойдет любой другой язык.
Ответ №1:
В VisualWorks включена библиотека SAX.
Комментарии:
1. Позволяет ли эта библиотека SAX создавать поддерево DOM и редактировать его?
Ответ №2:
На Java, используя JDOM или DOM4J (и, возможно, также XOM), вы можете написать настраиваемый конструктор для достижения того, чего вы хотите.
Пример для DOM4J
Ответ №3:
Процессор STX позволяет обрабатывать большой документ потоковым способом, но сохранять (возможно, преобразованные) части этого документа в переменных или буферах.