如何用C语言解析XML标记中的值?

时间:2009-10-03 21:04:02

标签: c xml parsing

我将此字符串作为输入“<operator value=1/>”。 如何在C中解析出这个字符串以获得“1”?

2 个答案:

答案 0 :(得分:2)

如果你知道这就是你总能得到的字符串类型,你可以使用sscanf()

int value;
if(sscanf(theString, "<operator value=%d/>", &value) == 1)
    ;  // parsing succeeded, use value
else
    ;  // parsing failed

如果您要接收更复杂的输入,我建议使用XML解析库,例如expatTinyXML(需要C ++)。

答案 1 :(得分:0)

我假设您在不使用任何库的情况下解析字符串,并且该字符串可能不合法。我曾经在解析sgml时遇到过这个问题。

有几种方法可以做到这一点。您可以使用strstok拆分字符串以找到值1,然后使用atoi转换它。

我建议您使用正则表达式库来提取字符串。它会处理更多的边界情况。