Я после очень маленького XML-парсера для встроенного проекта. Он должен скомпилировать до 10-15 тыс., Не требует проверки и должен быть простым и портативным.
Есть ли хороший крошечный XML-парсер для встроенного проекта C?
Ответ 1
Мне удалось настроить флаги компиляции следующих XML-парсерных библиотек для C и сократить более 50% их размера на моей машине Ubuntu. Мини-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. У меня были хорошие отзывы от людей, которые счастливо внедряли их в маршрутизаторы.
Как я хочу, чтобы он был максимально простым, я, вероятно, не буду добавлять новые функции, а улучшать существующие (и, конечно же, исправлять ошибки!:)). Я не очень активен в своем развитии, если не сообщается об ошибках.