【发布时间】:2015-07-20 07:29:43
【问题描述】:
是否有任何已知的算法可以检测并从 xml txt 文件中分离标签并将内容存储到具有匹配标签详细信息的另一个文件中?
我尝试对其进行硬编码,但它不适用于所有标签。 "t" ... "/t" 等标签有效,但 "a href="http://example.com"" "/a" 等标签无效。
void get_output(){
int i=0;
int j=0;
int k=0;
int l=0;
int m=0;
int n=0;
printf("\n");
for(i=0; i<1024; i++){
k=0;
for(j=0; j<strlen(tags[i]); j++){
if(tags[i][j] == '<'||tags[i][j]=='>'){
k++;
if(k == 4){
for(l = 0; tags[i][l+1] != '>'; l++){
printf("%c",tolower(tags[i][l+1]));
}
printf(": ");
for(; tags[i][l+2] != '<'; l++){
printf("%c", tags[i][l+2]);
}
printf("\n");
}
}
}
}
}
我也在尽量避免使用第 3 方库。
【问题讨论】:
-
尝试在不工作的情况下发布案例。
-
正确解析 HTML 并非易事。您可以使用状态机一次查看几个字符,状态数是可控的。依赖
strstr()或正则表达式匹配的蛮力方法是近似的,并且在许多琐碎的情况下都失败了。 -
迷你 XML:msweet.org/projects.php?Z3