Я хочу разделить html-страницу на куски по разделителю тегов: например <img
или <div>
. Я пробовал следующий код, но он не работает:split html по тегам
char source[MAXBUFLEN + 1];
FILE *fp = fopen("source.html", "r");
if (fp != NULL)
{
size_t newLen = fread(source, sizeof(char), MAXBUFLEN, fp);
if (newLen == 0) {
fputs("Error reading file", stderr);
} else {
source[++newLen] = '\0'; /* Just to be safe. */
}
}
fclose(fp);
//not working
char* strArray[10];
int i = 0;
char *token = strtok(source, "<img");
while(token != NULL)
{
strcpy(strArray[i++], token);
token = strtok(NULL, "<img");
}
printf("%s\n", strArray[3]);
Что я делаю неправильно? Есть ли другой метод, который я могу использовать, кроме strtok?
Второй аргумент 'strtok()' на самом деле список всех разделителей вы заинтересованы. Я рекомендовал бы расщепление на "<", а затем проверить, начинается ли токен с 'img' –
Если вам действительно не нужно это реализовать, я предлагаю вам проверить libxml: http: //www.xmlsoft.org /. В противном случае вам придется использовать strtok для синтаксического анализа для «<», затем проверить свой тег и затем проанализировать «>». –