一个简单的C XML解析器

时间:2010-05-17 19:09:05

标签: c xml

这就是我需要做的:我需要读取XML格式的文档并从中提取元素及其值,例如在以下代码中:

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

我需要提取:name = Mark,Age = 21和Country = NL。

直到今天,我一直在手动进行这种解析,这很痛苦。

现在我不关心文件是“正确的XML”还是全部,我不关心DTD或其他标准的XML要求。 我只需要阅读并解析这些值。

任何人都知道(lib eXpat除外)一个lib来执行此操作或代码执行此操作? 谢谢!

尔杰斯

编辑:

是的,我忘了提到这个平台:Windows和Linux。在普通的C中,而不是C ++

5 个答案:

答案 0 :(得分:7)

答案 1 :(得分:4)

Expat解析器是我遇到过的最好的 - 我在我的C ++代码中使用它而不是各种C ++解析器 - 但它是用C语言编写的。非常易于使用并嵌入到您的应用程序中。所以我不明白为什么在你的问题中你说:

  

(lib eXpat除外)

你有什么反对意见吗?

答案 2 :(得分:4)

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);

获得节点后,您可以根据自己的要求对其进行操作。

答案 3 :(得分:1)

如果C ++没问题,那么你可以试试TinyXML。我已经使用它几年了,效果很好。

答案 4 :(得分:0)

Mini-XML看起来很有希望

http://www.minixml.org/