LINUX.ORG.RU

yoctoXML - маленький и быстрый XML парсер

 , , , ,


0

0

Вышла первая версия простой библиотеки для работы с XML -- yoctoXML (yXML). Это очень компактная и простая библиотека, открытая по лицензии "modified BSD" (GPL-совместима). yXML всех возможностей XML не поддерживает, однако достаточна для хранения и обработки конфигурационных данных, к примеру. Очень проста в использовании. Написана на Си и занимает менее 300 строк (комментарии есть, разобраться и модифицировать легко).

>>> Подробности



Проверено: Shaman007 ()

Re: yoctoXML - маленький и быстрый XML парсер

буду первым. xml не нужен? ;)

k0l0b0k ★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

а вообще хорошо. надо поглядеть, тем более BSDL. а то паровоз libxml поддостал уже.

k0l0b0k ★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

> занимает менее 300 строк

Не верю!

GFORGX ★★☆ ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от k0l0b0k

Re: yoctoXML - маленький и быстрый XML парсер

ты от libxml подожди избавляться

>yXML не поддерживает все возможности XML целиком. На данный момент поддерживается только самое важное — теги, аттрибуты и комментарии. Причем комментарии пропускаются. Этого достаточно для хранения различной конфигурационной информации.

dimon555 ★★★★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

 42 yxml_t *yxml_read(const char *str, const char **pstr) /* Read xml items from string */
 43 {
 44     const char *s, *p = str;
 45     yxml_t *x, *xml = NULL, *e = NULL;
 46     yxml_attr_t *a;
 47     int n, m;
 48     while (*p)
 49     {
 50         while (isspace(*p)) ++p; /* Skip spaces */
 51         if (*p != '<') { yxml_free(xml); *pstr = p; return NULL; } /* Syntax error */
 52         if (p[1] == '/') { *pstr = p; return xml; } /* End tag */
 53         else if (p[1] == '!' && p[2] == '-' && p[3] == '-') /* Skip comments */


может все 205 строк скопипастить?

dimon555 ★★★★★ ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от GFORGX

Re: yoctoXML - маленький и быстрый XML парсер

Я спрашиваю в основном потому, что некоторые (не будем показывать пальцем) часто вопят о «несовместимости» XML'а и прочей брехни. Хотя проблемы у них обычно отнюдь не от этого.

Deleted ()

Re: yoctoXML - маленький и быстрый XML парсер

одобряю. пусть разрабатывают.

boo32 ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от dimon555

Re: yoctoXML - маленький и быстрый XML парсер

да мне этого хватит. зато можно легко всунуть в свою C++ обертку. один раз только namespace понадобился и то только для того чтобы изобрести нормальный xsd для упрощения редактирования документа.

k0l0b0k ★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

эх, а еще где-то 2-3 года назад выпилил порт для mxml, думал, людям в кой-то веки пригодится. а тут велосипед, один друго квадратнее.

oc ()

Re: yoctoXML - маленький и быстрый XML парсер

>Скачивание должно начаться автоматически в течении 3 секунд. Если этого не произошло, скачайте по этой ссылке

УМРИ

УМРИ

УМРИ

УМРИ

УМРИ

УМРИ

УМРИ

УМРИ

Как же вы задрали, любители автокачалок. Умрите все, сволочи.

stellar ()

Re: yoctoXML - маленький и быстрый XML парсер

yxml10.zip - FFFFFFFFFUUUUUUU!!!!!!!! Для полноты картины не хватает .rar.

Школота, епт. Что мешает назвать сделать нормальный архив yxml-1.0.0.tar.[gz|bz2] ?

stellar ()

Re: yoctoXML - маленький и быстрый XML парсер

Архив yxml10.zip раскрывается в имя каталога без версии - yxml.

FFFFFFFFFUUUUUUUUU!

stellar ()

Re: yoctoXML - маленький и быстрый XML парсер

и чего она умеет?

eXOR ★★★★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

Валидный XML не парзится.

IN : "<?xml version="1.0"?><foo><bar/></foo>" XML: NULL OUT (0): "" Partially parsed

FFFFFFFFFFFFUUUUUUUUUUUUUUUUUUU!!!!

stellar ()

Re: yoctoXML - маленький и быстрый XML парсер

в маленьких проектах юзаю tynyxml, не хватало сжатия, прикрутил gzstream.
больше ничего не нужно)

anonymous2 ★★★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

ASCI7 парзится

IN : "<test><ascii/> </test>" XML: <test(4)> <ascii(5) /> </test> OUT (22): "<test><ascii /></test>" Wholly parsed

UTF не парзится

IN : "<тест><кодировок/> </тест>" XML: NULL OUT (0): "" Partially parsed

FFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUU!!!!!!!!!!!!!!!!

stellar ()

Re: yoctoXML - маленький и быстрый XML парсер

В мире куча интересных творческих востребованных задач, а всем бы новую недоделанную парсилку хмл писать охота =/

theos ★★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

namespace, xpath, валидации по схеме... ничего нет. и нахрена такое счастье?

Tails ()

Re: yoctoXML - маленький и быстрый XML парсер

IN : "<test>failed</test>" XML: NULL OUT (0): "" Partially parsed

FFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUU!!!!!!!!!!!!!!!!!

Нет, ну это просто ПЯТНИЦА.

stellar ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от stellar

Re: yoctoXML - маленький и быстрый XML парсер

> IN : "<test>failed</test>" XML: NULL OUT (0): "" Partially parsed

Простое содержимое текстовое тоже не поддерживается. Только теги и аттрибуты. Так как создавался для узкой цели -- файлы конфигурации. Хотя предположительно потом это будет добавлено, поскольку может понадобиться.

mrhx ()

Re: yoctoXML - маленький и быстрый XML парсер

>Вышла первая версия простой библиотеки для работы с XML -- yoctoXML

Ждём реакции компании i4i.

CrashTestDummy ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от Deleted

Re: yoctoXML - маленький и быстрый XML парсер

>для конфигов

Если уж есть возможность выбирать формат конфигов, лучше что-нибудь более читабельное, чем XML:

http://www.hyperrealm.com/libconfig

А самый лучший конфиг - скрипт на Scheme.

hbee ★★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

Лучше бы ASN.1 кодер написали. А парсер зумля только ленивый не писал.

zenith ★★★ ()

Re: yoctoXML - маленький и быстрый XML парсер

Вместо написания еще одной студенческой поделки,
лучше бы направили энергию на что-нибудь полезное.

Ну, или, о крайней мере, не смешили бы людей.

blackice ()

Re: yoctoXML - маленький и быстрый XML парсер

> Простое содержимое текстовое тоже не поддерживается. Только теги и
> аттрибуты. Так как создавался для узкой цели -- файлы конфигурации

Для файлов конфигурации есть чудесное решение - YAML. Ну или
совсем простой формат в стиле:
ключ = значение

blackice ()

Re: yoctoXML - маленький и быстрый XML парсер

> А самый лучший конфиг - скрипт на Scheme.

Для моих целей был нужен более распространенный формат, который мог бы быть прочитан на разных языках с минимумом усилий. Хотя лично мне скобки () больше нравятся, чем <> с кавычками...

mrhx ()

Re: yoctoXML - маленький и быстрый XML парсер

>Простое содержимое текстовое тоже не поддерживается. Только теги и аттрибуты. Так как создавался для узкой цели -- файлы конфигурации. Хотя предположительно потом это будет добавлено, поскольку может понадобиться.

Это не парзер XML, а парзер языка, отдаленно похожего на 0.5% стандарта XML. Для хранения конфигов подходит чуть менее чем никак.

Нет-нет, писать даже такой код, КОНЕЧНО ЖЕ, лучше чем пить Ягу в парке или насиловать гусей, так что чем бы дитя не тешилось, как говорится...

stellar ()

Re: yoctoXML - маленький и быстрый XML парсер

>более читабельное, чем XML

Ну вот не надо начинать дремучий холивар, только недавно короткая реинкарнация была %)

>А самый лучший конфиг - скрипт


Teh fail!

Deleted ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от Genuine

Re: yoctoXML - маленький и быстрый XML парсер

Это если не читать новости, а кидаться на флаги. А если читать - там действительно запатентовано...

r ★★★★★ ()
Ответ на: Re: yoctoXML - маленький и быстрый XML парсер от blackice

Re: yoctoXML - маленький и быстрый XML парсер

>ключ = значение

ша!

wsdl.location = http://localhost:6666/MediaGateway?wsdl

# error field accessible thru setter -> shared attribute key
error.fields = assetID->//job:attribute[@name='assetId'];;hostname->'localhost'

error.params = job-id->/job:job/@id

Ключ значение поддерживающее сабститьюшены и мапы со значениями xpath! Мутанты форэвер!

r ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.