我正在從http服務器下載一個jsp文件在c。但我得到的文件內容如圖所示獲取指定的內容到緩存中c
<HTML>
<BODY>
Hello, user
</BODY>
</HTML>
進入緩衝區。現在我想捕捉「你好,用戶」只進入我的緩衝區。誰能幫我在C.
找到代碼我正在從http服務器下載一個jsp文件在c。但我得到的文件內容如圖所示獲取指定的內容到緩存中c
<HTML>
<BODY>
Hello, user
</BODY>
</HTML>
進入緩衝區。現在我想捕捉「你好,用戶」只進入我的緩衝區。誰能幫我在C.
找到代碼基本上你要掃描的緩衝區,而忽略一切,這是<
和>
之間:
char *get_text (char *dst, char *src) {
int html = 0;
char ch;
while (ch = *src++) {
if (ch == '<' || ch == '>') {
html = (ch == '<');
} else if (!html) {
*dst++ = ch;
}
}
*dst = '\0';
return dst;
}
您可以嘗試剝離HTML,但是這可能不是如果標籤外有更多內容(需要更具體的過濾,例如檢查周圍的標籤名稱),則可以正常工作。
未經測試,但應該工作:
char *html = ...; // html being a pointer to the document's contents
int ip = 0; // the input position
int op = 0; // the ouput position
int in_tag = 0; // are we inside a html tag?
char c; // current character
while(c = html[ip++])
{
if(c == '<')
in_tag = 1;
else if(c == '>')
in_tag = 0;
else if(c == '\n' || c == '\r') // strip line breaks
;
else if(!in_tag)
html[op++] = c;
}
html[op] = '\0';
使用的libexpat。這是用C編寫的面向流的XML解析器可以註冊BODY標籤的處理程序,並閱讀內容
發佈一些代碼,將幫助人們回答這個問題多了很多容易和有效。 – MGwynne 2011-06-09 11:43:43
您在問題中說「所示文件的內容」,但我什麼也沒看到。 – 2011-06-09 11:44:13
由於剝離了HTML標籤而被隱藏。修正了。 – Mario 2011-06-09 11:46:34