我有一个xml文件,我必须阅读并解析才能找到一个值。
我在文件中两个位置的标签中提到了这个值,如下所示:
<length>xx</length>
<length type = "float">yy</length>
我需要提取xx和yy。我使用简单的字符串函数(由于大小限制我不能使用xml Parsers)。
哪些字符串函数可以帮助我提取xx和yy?
我在这些行上尝试了strtok()但没有成功..:
fp = fopen( "trial.xml", "r" );
if(fp == NULL){
perror("file missing");
}
while (fgets (buffer, sizeof (buffer), fp) != NULL) {
char *p;
p = strstr(buffer, "<length");
if(p != NULL){
printf("p = %s\n", p);
p = strtok (p, "<>");
printf("strtok 1, p = %s\n", p);
p = strtok (NULL, "<>");
printf("p = %s\n", p);
}
答案 0 :(得分:2)
我建议使用TinyXML进行解析。
如果你想使用暴力......
fp = fopen( "trial.xml", "r" );
if(!fp) {
perror("file missing");
}
while(fgets (buffer, sizeof (buffer), fp)) {
if(strstr(buffer, "<length>")) {
char* start = strchr(buffer, '>');
start++;
char* end = strchr(buffer, '<');
end = '\0';
printf("%s\n", start); // prints xx
}
if(strstr(buffer, "<length type = \"float\">")) {
char* start = strchr(buffer, '>');
start++;
char* end = strchr(buffer, '<');
end = '\0';
printf("%s\n", start); // prints yy
}
}