C: Cómo extraer el tipo de documento de una página HTML

Necesito extraer el doctype de una página HTML que puede ser XHTML, HTML html o WML, utilizando C o C++. Daré la entrada como un archivo HTML o como una matriz.

si las páginas html no contienen un encabezado, entonces el resultado debería ser con respecto a la página, como si fuera html result = html o si fuera xhtml result = xhtml....

preguntado el 22 de mayo de 12 a las 14:05

Debería dar el qué? -

si las páginas html no contienen el encabezado, entonces el resultado debe estar con respecto a la página como si fuera html result = html o si fuera xhtml result = xhtml.... -

¿Qué quieres decir con 'dar la res'? Normalmente, 'res' es la abreviatura de 'resolución', pero no veo cómo se puede aplicar eso aquí. -

1 Respuestas

Esto parece dos preguntas distintas:

1) cómo simplemente obtener la declaración "doctype" de una página html, para lo cual iba a sugerir algo simple como:

char doctype[1024];

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

Entonces tal vez coincida con conocidos doctype cadenas para obtener un valor enumerado.

Pero también está preguntando 2) cómo detectar el tipo de una página sin declaración de tipo de documento. Eso es más difícil y puede haber múltiples respuestas correctas para cada página. Sugeriría subcontratar a una biblioteca como libxml. Tiene funciones para validar flujos de entrada como ciertos tipos de documentos.

contestado el 22 de mayo de 12 a las 15:05

hola buen ans, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> en esto quiero resultado como XHTML 1.0 Transicional si no, el resultado debería ser xhtml e incluso lo mismo para los sitios html también: luna de sol

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.