我收到一个文件finalDocument
,并且想要设置相同的DocType
作为输入文件xmlDocument
。这就是我要做的事:为什么转换后DocType为null?
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));
然而,由于某些原因的finalDocument
的DocType
未设置。我没有得到任何例外 - 这只是null
。
任何想法我做错了什么?
Btw:doctype.getSystemId()
和doctype.getPublicId()
不为空且有效。
那么,它有一个DocType开始?它从未在您显示的代码片段中更新。 –
@四十二你的意思是'finalDocument'?它有一个有关系吗? – displayname
w3c标签是如何相关的?这似乎不是关于标准本身的问题,而是一个编程问题。 – tambre