CまたはC++を使用して、XHTML、HTML html、またはWMLのHTMLページのDoctypeを抽出する必要があります。入力をHTMLファイルまたは配列として提供します。
htmlページにヘッダーが含まれていない場合、結果は、html result = htmlの場合、またはxhtml result = xhtml ...の場合のように、ページに対して含まれている必要があります。
これは2つの異なる質問のようです。
1)htmlページから「doctype」宣言を取得する方法。これについては、次のような単純なものを提案します。
char doctype[1024];
void
get_doctype(char *html_page)
{
sscanf(html_page, "<!DOCTYPE %1024s>", doctype);
}
次に、既知の文字列と照合してdoctype
、列挙値を取得します。
しかし、あなたは2)doctype宣言のないページのタイプを検出する方法も求めています。それは難しいことであり、各ページに複数の正解がある可能性があります。libxmlのようなライブラリにアウトソーシングすることをお勧めします。入力ストリームを特定の種類のドキュメントとして検証する機能があります。