我知道以前有人问过这个问题,但我似乎找不到合适的解决方案,所以我会说明问题:
我有一个类似于 XML 文件的字符串。它不是 XML 字符串,但有开始和结束标记。所有信息都位于一行中,例如:
<user>username</username>random data;some more random data<another tag>data</anothertag>randomdata;<mydata>myinfo</mydata>some more random data....
etc...
我试图只阅读之间的内容<mydata></mydata>
。有什么办法可以解析这个吗?
谢谢,代码值得赞赏。
我只想使用 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编辑框。因此,几乎可以保证它至少包含一个差一错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)