четверг, 13 января 2005 г.

Не так страшен libxml...

Потратил некоторое количество времени на изучение libxml (по скачанным примерам). Основная проблемы оказалась в том, что у меня установлена libxml1, а примеры основаны на libxml2. Общая структура у них одинакова, но часть методов имеет другие имена и/или список параметров, а часть методов в libxml1 вообще отсутствует. Идентичные по смыслу поля некоторых структур имеют разные названия (меня повеселило, что в структуре xmlNode поле children в libxml1 называется childs; правда, если задуматься, то неанглоязычные программисты делают еще те ошибки).
Читать и анализировать документ с помощью DOM-модели очень просто (у меня ушло 20 минут на написание полного дампера XML-файла), можно для моих целей только этим знанием и ограничиться. Писать SAX самому очень уж утомительно, поскольку там нужно задать дикое количество методов --- лениво :) Вот тут как раз и нужна завертка с C++-ный класс, сильно упростит дело. Сам писать не буду, попробую найти. Также достаточно просто создавать xml-документ на нуля.

PS. В libxml1 отсутствует xmlReader, а жаль - полезная штука. Ради этого поставлю все пакеты из libxml2.
PPS. Не нашел пока (может, и нету такого) поиска ноды по имени и типу. Возможно, придется написать ручками.

Комментариев нет:

Отправить комментарий

Спутник взлетает. Первая ступень отработала.

 И, кажется, неплохо: Посмотрим, что будет когда отработает вторая.