0

我需要使用 C 或 C++ 提取可能是 XHTML、HTML html 或 WML的 HTML 页面的文档类型。我将以 HTML 文件或数组的形式提供输入。

如果 html 页面不包含标题,则结果应该与页面相关,例如 html result = html 或 xhtml result = xhtml....

4

1 回答 1

1

这似乎是两个不同的问题:

1)如何简单地从 html 页面中获取“doctype”声明,为此我将建议一些简单的东西,例如:

char doctype[1024];

void
get_doctype(char *html_page)
{
  sscanf(html_page, "<!DOCTYPE %1024s>", doctype);
}

然后可能与已知doctype字符串匹配以获得枚举值。

但是您也在问 2) 如何检测没有 doctype 声明的页面类型。这更难,而且每一页可能有多个正确答案。我建议外包给像libxml这样的库。它具有将输入流验证为特定类型文档的功能。

于 2012-05-22T14:06:04.670 回答