Простой C XML-парсер - PullRequest
       0

Простой C XML-парсер

7 голосов
/ 17 мая 2010

Это то, что мне нужно сделать: мне нужно прочитать документ в формате XML и извлечь из него элементы и их значения, например, в следующем коде:

<user name="Mark">
    <param name="Age" value="21"/>
    <param name="Country" value="NL"/>
</user>

Мне нужно извлечь: имя = Марк, возраст = 21 и страна = NL.

До сегодняшнего дня я выполнял этот анализ вручную, что является болью.

Теперь мне все равно, является ли файл "правильным XML" или всем этим, меня не волнует DTD или другие стандартные требования XML. Мне просто нужно прочитать и разобрать значения.

Кто-нибудь знает (кроме lib eXpat) lib для этого или код для этого? Спасибо!

Jess

EDIT:

Да, я забыл упомянуть платформу: Windows и Linux. На простом C, а не C ++

Ответы [ 5 ]

7 голосов
/ 17 мая 2010
4 голосов
/ 18 мая 2010

Как насчет Mini-XML? Он легкий, работает с gcc, совместим с ANSI-C ...

http://www.minixml.org/index.php

В соответствии с документацией, поиск определенных узлов будет так же прост:

/* Find the first "a" element */
    node = mxmlFindElement(tree, tree, "a",
                           NULL, NULL,
                           MXML_DESCEND);

Получив узел, вы можете управлять им в соответствии с вашими требованиями.

4 голосов
/ 18 мая 2010

Парсер Expat - лучший из всех, с которыми мне приходилось сталкиваться - я использую его в своем коде C ++ вместо различных синтаксических анализаторов C ++ - но он написан на C. Очень прост в использовании и встраивается в ваше приложение. Поэтому я не понимаю, почему в своем вопросе вы говорите:

(кроме lib eXpat)

ты что-то имеешь против?

1 голос
/ 17 мая 2010

Если C ++ в порядке, вы можете попробовать TinyXML . Я использую его несколько лет, и он прекрасно работает.

0 голосов
/ 18 мая 2010

Мини-XML выглядит многообещающе

http://www.minixml.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...