Подтвердить что ты не робот

Есть ли хороший крошечный XML-парсер для встроенного проекта C?

Я после очень маленького XML-парсера для встроенного проекта. Он должен скомпилировать до 10-15 тыс., Не требует проверки и должен быть простым и портативным.

4b9b3361

Ответ 1

Мне удалось настроить флаги компиляции следующих XML-парсерных библиотек для C и сократить более 50% их размера на моей машине Ubuntu. Мини-XML является единственным, близким к тому, что вы просили:

Здесь хорошая дискуссия:

Библиотека XML для встроенных систем

Ответ 2

Я искал его недавно, и я нашел SimpleXML (http://simplexml.sourceforge.net/) и немного больше sxmlc (http://sourceforge.net/projects/sxmlc/)

Я нахожу SimpleXML более интересным, потому что он проще, я не пробовал, но похоже, что он соответствует тому, что я имею в виду, библиотеке с одним файлом (хорошо .h и .c), которая не поддерживает экзотические функции XML.

Простой XML-парсер - это крошечный парсер для подмножества XML (все, кроме сущностей и пространств имен). Он использует простой интерфейс "один обработчик для каждого тега" и подходит для использования с устройствами с ограниченными ресурсами.

Ответ 3

Вы всегда можете использовать собственную реализацию. Я сделал это несколько лет назад, а теперь добавил к документации код интерфейса mercurial.intuxication.org/hg/cstuff.

Обратите внимание, что анализатор никогда не использовался в производственной среде или даже был протестирован более, чем рудиментарно; комментарии также не существуют, так что получайте удовольствие от grokking кода, если вам нужно его изменить;)

Ответ 4

Попробуйте yxml - это действительно маленький и быстрый недействительный парсер.

Ответ 5

Я разработал sxmlc ( "Simple XML in C" ), чтобы это было так: как можно меньше файлов. Это только один файл с дополнительным "поисковым" файлом, который вы можете добавить, если вам нужен поиск в формате XPath через документ.

Он обрабатывает загрузку типа DOM (все дерево документа в памяти) или загрузку стиля SAX (вызов обратных вызовов всякий раз, когда node считывается с его атрибутами или текст читается на node). Если память беспокоит вас, вас будет интересовать SAX.

Некоторые люди также были заинтересованы в том, что он может анализировать файлы или буферы памяти (полезно, когда вы получаете XML как веб-ответ).

Он обрабатывает файлы Unicode с версии 4 до #define, поэтому, если вам не нужен Юникод, просто не определяйте SXMLC_UNICODE, и в двоичном выражении не будет увеличения веса.

Я также должен сказать, что сохраняет комментарии при записи XML на диск! Мне всегда было жалко, когда люди тратили время на объяснение синтаксиса конфигурации в файлах XML ( "put" true "для включения специального сжатия..." ), которые стираются при сохранении приложением.

Он компилируется под Linux и Windows. У меня были хорошие отзывы от людей, которые счастливо внедряли их в маршрутизаторы.

Как я хочу, чтобы он был максимально простым, я, вероятно, не буду добавлять новые функции, а улучшать существующие (и, конечно же, исправлять ошибки!:)). Я не очень активен в своем развитии, если не сообщается об ошибках.