< ...> 태그를 포함하여 HTML 문서에서 HTML을 제거하려면 어떻게해야합니까? 내 현재 프로그램은 웹 페이지의 내용을 가져 오기 위해 곱슬 곱슬 함을 사용하여 텍스트 파일에 넣은 다음 텍스트 파일에서 읽고 <>을 제거하지만 그 태그 사이에있는 모든 것을 제거하는 방법은 확실하지 않습니다. (당신은 다른 선언에 중첩 된 하나 개의 태그가없는 것을 의미한다, 당신은 적절한 HTML을 다루는 것을 가정 '<'와 '>'태그 사이의 내용을 제거 단지 코드를 배치C 사이의 스트립 html <...>
#include <curl/curl.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define WEBPAGE_URL "http://homepages.paradise.net.nz/adrianfu/index.html"
#define DESTINATION_FILE "/home/user/data.txt"
size_t write_data(void *ptr, size_t size, size_t nmeb, void *stream)
{
return fwrite(ptr,size,nmeb,stream);
}
int main()
{
int in_tag = 0;
char * buffer;
char c;
long lSize;
size_t result;
FILE * file = fopen(DESTINATION_FILE,"w+");
if (file==NULL) {
fputs ("File error",stderr);
exit (1);
}
CURL *handle = curl_easy_init();
curl_easy_setopt(handle,CURLOPT_URL,WEBPAGE_URL); /*Using the http protocol*/
curl_easy_setopt(handle,CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(handle,CURLOPT_WRITEDATA, file);
curl_easy_perform(handle);
curl_easy_cleanup(handle);
int i, nRead, fd;
int source;
char buf[1024];
if((fd = open("data.txt", O_RDONLY)) == -1)
{
printf("Cannot open the file");
}
else
{
nRead = read(fd, buf, 1024);
printf("Original String ");
for(i=0; i<nRead; i++)
{
printf("%c", buf[i]);
}
printf("\nReplaced String ");
for(i=0; i<nRead; i++)
{
if(buf[i]=='<' || buf[i]=='>'){
buf[i]=' ';
}
printf("%c", buf[i]);
}
}
close(source);
return 0;
}
을 처리 할 것입니다. '<'에서는 카운터를 증가시키고 '>'는 카운터를 감소시킵니다. 카운터가 0이면 출력 만 수행하십시오. (fencepost 오류에주의하십시오!) – wildplasser