Je reçois un document finalDocument
et je veux définir le même DocType
que le document d'entrée xmlDocument
. Voici comment je le fais:Pourquoi DocType est-il nul après la transformation?
finalDocument = icBuilder.parse(new InputSource(new ByteArrayInputStream(xmlString.getBytes("UTF-8"))));
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DocumentType doctype = xmlDocument.getDoctype();
StringWriter writer = new StringWriter();
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, doctype.getSystemId());
transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, doctype.getPublicId());
transformer.transform(new DOMSource(finalDocument), new StreamResult(writer));
Cependant, pour une raison quelconque le DocType
de finalDocument
n'est pas réglé. Je ne reçois pas d'exception ou quoi que ce soit - c'est juste null
.
Une idée de ce que je fais mal?
Btw: doctype.getSystemId()
et doctype.getPublicId()
ne sont pas NULL et valides.
Eh bien, a-t-il un DocType pour commencer? Il n'est jamais mis à jour dans le fragment de code que vous affichez. –
@ quarante-deux Voulez-vous dire 'finalDocument'? Est-ce important si elle en a un? – displayname
En quoi l'étiquette w3c est-elle pertinente? Cela ne semble pas être une question sur la norme elle-même, mais plutôt sur un problème de programmation. – tambre