J'utilise Java XML Transformer intégré pour sérialiser un document XML en texte. J'ai un problème cependant quand je produis en mode HTML.Comment empêcher Java XML Transformer utilisant la méthode "HTML" d'ajouter une balise <META>?
Chaque fois que j'insère un élément head
, le transformateur intégré décide d'insérer une variable META
avec des données de type contenu. Je ne veux pas cette balise dans mes données et je n'arrive pas à trouver un paramètre de sortie qui désactivera cette fonctionnalité. Je sais que je pourrais construire une feuille de style xslt et enlever la balise en question, mais il serait plus simple de pouvoir définir un paramètre sur le transformateur lui-même qui le désactive.
Vous pourriez répondre avec "mais vous devriez vraiment avoir cette étiquette" - croyez-moi, je n'en ai pas besoin, par souci de brièveté je n'entrerai pas dedans.
Exemple de code
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);
retours
<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title></title><style type="text/css"></style></head><body></body></html>
cas au point, je ne veux pas qu'il y ait étiquette META
. Comment puis-je m'en débarrasser le plus facilement possible?
MISE À JOUR:
J'ai couru à travers l'option {http://xml.apache.org/xalan}omit-meta-tag
qui est censé faire ce que je cherche. Cependant, il semble que ce soit ignoré.
set ** xml ** Valeur de OutputKeys.METHOD. – adatapost
il doit être html pour ce que je fais – Mike
C'est le comportement standard selon XSLT '[specs] (http://www.w3.org/TR/xslt#section-HTML-Output-Method) et il est requis par navigateurs si vous utilisez un autre jeu de caractères que le jeu par défaut. –