Ich erhalte ein Dokument finalDocument
und möchte das gleiche DocType
als das Eingabedokument xmlDocument
setzen. Dies ist, wie ich es tun:Warum ist DocType nach der Umwandlung ungültig?
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));
jedoch aus irgendeinem Grund die DocType
von finalDocument
nicht gesetzt ist. Ich bekomme keine Ausnahme oder irgendetwas - es ist nur null
.
Irgendeine Idee, was ich falsch mache?
Btw: doctype.getSystemId()
und doctype.getPublicId()
sind nicht null und gültig.
Nun, hat es einen DocType am Anfang? Es wird nie in dem angezeigten Code-Fragment aktualisiert. –
@ zweiundvierzig Meinst du "finalDocument"? Ist es wichtig, ob es einen hat? – displayname
Wie ist das w3c-Tag relevant? Dies scheint nicht nur eine Frage des Standards selbst zu sein, sondern ein Programmierproblem. – tambre