parsing两个XML标签之间的值

我知道这个问题之前已经被问过了,但是我似乎无法find一个合适的解决scheme,所以我要说明问题:

我有一个类似于XML文件的string。 这不是一个XMLstring,但它有打开和closures标签。 所有的信息都在一行中,例如:

<user>username</username>random data;some more random data<another tag>data</anothertag>randomdata;<mydata>myinfo</mydata>some more random data.... 

等等…

我正在尝试阅读<mydata></mydata> 。 任何方式来parsing这个?

谢谢,代码表示赞赏。

我只会使用strstr():

 char * get_value(const char *input) { const char *start, *end; if((start = strstr(input, "<mydata>")) != NULL) { start += strlen("<mydata>"); if((end = strstr(start, "</mydata>")) != NULL) { char *out = malloc(end - start + 1); if(out != NULL) { memcpy(out, start, (end - start)); out[end - start] = '\0'; return out; } } } return NULL; } 

请注意,上述内容未经测试,直接写入SO编辑框。 所以,几乎保证至少包含一个错误的错误。