wal*_*ali 4 java xml doctype dom
我在java中使用DOM创建了一个XML文档.我无法添加doctype.我想要像这样的doctype.
<!DOCTYPE IndInfo PUBLIC "EDAFileSomething" "EDAFileSomething_2_0.dtd">
Run Code Online (Sandbox Code Playgroud)
这是文档创建代码.
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Run Code Online (Sandbox Code Playgroud)
这是Transformer对象代码.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = transformerFactory.newTransformer();
} catch (TransformerConfigurationException ex) {
Logger.getLogger(Reader.class.getName()).log(Level.SEVERE, null, ex);
}
DOMSource source = new DOMSource(doc);
try {
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
} catch (TransformerException ex) {
Logger.getLogger(Reader.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("File saved!");
Run Code Online (Sandbox Code Playgroud)
小智 11
您可以使用DOM构造doctype并将doctype设置为输出属性.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
DOMImplementation domImpl = document.getImplementation();
DocumentType doctype = domImpl.createDocumentType("doctype",
"-//Oberon//YOUR PUBLIC DOCTYPE//EN",
"YOURDTD.dtd");
transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, doctype.getPublicId());
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, doctype.getSystemId());
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(database));
transformer.transform(source, result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17107 次 |
| 最近记录: |