Estoy usando el Java XML Transformer incorporado para serializar un documento XML en texto. Sin embargo, tengo un problema cuando estoy generando en modo HTML.¿Cómo evito que Java XML Transformer utilizando el método "HTML" agregue la etiqueta <META>?
Cada vez que inserte un elemento head
, el transformador incorporado decide insertar una etiqueta META
con datos de tipo de contenido. No quiero esta etiqueta dentro de mis datos y parece que no puedo encontrar un parámetro de salida que deshabilite esta característica. Sé que podría construir una hoja de estilo xslt y quitar la etiqueta en cuestión, pero sería más simple simplemente poder establecer un parámetro en el propio transformador que lo desactive.
Puedes responder con "pero realmente deberías tener esta etiqueta" - créeme, no la necesito, por las buenas noticias no entraré en ella.
Código de ejemplo
Document d;
//d = <html><head><title></title></head><body></body></html>
Transformer t; //properly inited with no xslt specified
t.setOutputProperty(OutputKeys.METHOD,"html");
t.setOutputProperty(OutputKeys.INDENT,"no");
t.transform(new DOMSource(d), result);
System.out.println(result);
vuelve
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title></title><style type="text/css"></style></head><body></body></html>
ejemplo de ello, no quiero que META
etiqueta allí. ¿Cómo me deshago de él de la manera más fácil posible?
ACTUALIZACIÓN:
me he encontrado a través de la opción {http://xml.apache.org/xalan}omit-meta-tag
que se supone que debe hacer lo que estoy buscando. Sin embargo, parece como si lo estuvieran ignorando.
** ** xml valor de OutputKeys.METHOD. – adatapost
necesita ser html para lo que estoy haciendo – Mike
Ese es el comportamiento estándar de acuerdo con XSLT '[especificaciones] (http://www.w3.org/TR/xslt#section-HTML-Output-Method) y es requerido por navegadores si usa otro conjunto de caracteres codificado por defecto. –