Ответ 1
Я не знаю о распределении динамической памяти, но стандартный синтаксический анализатор XML XML expat, который является базовой библиотекой для количество парсеров там.
Я работаю над проектом для встроенной системы, использующей XML для получения данных в систему и из нее. Я не хочу, чтобы обработка XML передавалась в кучу битов, которые строят строки XML, используя snprintf()
/strcat()
и друзей или анализируя XML, путем подсчета символов "<
" и ">
".
Я нашел несколько XML-библиотек, несколько из которых могут быть даже достаточно маленькими, но ближе всего к C есть С++, чего нет в карточках для этой системы. Я надеюсь, что я смогу найти библиотеку XML, которая удовлетворяет следующим ограничениям:
Он не должен быть полным парсером - я просто хочу, чтобы вытащить текст из вложенных элементов и иметь достаточно простой способ генерации XML, который не полагается на строки формата. Атрибуты не используются (пока), поэтому библиотеке не нужно их поддерживать. Документы XML будут довольно маленькими, поэтому что-то вроде DOM-like будет хорошо, если оно будет работать с клиентскими буферами (анализ синтаксиса XML на месте будет приятным).
PugXML и TinyXML выглядят довольно близко, но я надеюсь, что кто-то там знает об XML-библиотеке, специально разработанной для встроенных систем на базе C, которые отсутствуют в моем поисковом рассылке.
Я не знаю о распределении динамической памяти, но стандартный синтаксический анализатор XML XML expat, который является базовой библиотекой для количество парсеров там.
Я не уверен, но, возможно, Mini-XML: облегченная библиотека XML поможет вам:
Вы можете использовать кодировщик ASN.1 XER; там есть бесплатный http://lionet.info/asn1c/
Я написал sxmlc, чтобы быть как можно более простым, и я знаю, что люди используют его в маршрутизаторах, для выполнения разбора на месте веб-запросов.
К сожалению (и я опаздываю на 5 лет) он использует выделение памяти, хотя и хранится как минимум: один буфер для чтения каждой "строки XML" (что находится между <
и >
, извините;)) и множество небольших буферов для отслеживания имени тега, имен атрибутов и значений и текста (хотя я всегда хотел использовать char[16]
или около того для них).
И он использует strdup
/strcpy
и т.д.
Как я хочу, чтобы кто-то мог использовать его свободно, лицензия BSD.
Библиотека Xerces-C была бы оптимальной для использования в этом сценарии.
Если это будет довольно маленький XML, почему бы не сгенерировать программно, используя sprintf или другой материал, и использовать функции извлечения строк для его анализа. Но, как уже упоминалось ранее, если немного большой, предложил бы использовать библиотеку Xerces-C, так как это с открытым исходным кодом
Если это будет довольно маленький XML, почему бы не сгенерировать программно, используя sprintf или другие вещи и использовать функции извлечения строк для синтаксического анализа. Но, как упоминалось ранее, если немного, предложите использовать библиотеку Xerces-c, так как это с открытым исходным кодом