![](/img/trans.png)
[英]How to declare DOCTYPE and ENTITY in XML using StAX Parser in Java
[英]How to declare doctype ,xml version and encoding in XML file using DOM parser in java?
抱歉,我不知道該怎么做。
public void writeXML(String tableName) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// root elements
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement(tableName);
doc.appendChild(rootElement);
for(Map m: rows){
Element parent = doc.createElement((String) m.get("ownerNode"));
rootElement.appendChild(parent);
for(String s: colNames){
String key = (String) m.get(s);
System.out.println(key);
Element innerNode = doc.createElement(s);
innerNode.appendChild(doc.createTextNode((String) m.get(s)));
parent.appendChild(innerNode);
}
}
// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(tableName + ".xml"));
// Output to console for testing
// StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
System.out.println("File saved!");
} catch (ParserConfigurationException pce) {
} catch (TransformerException tfe) {
}
}
這是我編寫xml正文的代碼,因此如果有人可以通過DOM解析器添加XML版本,編碼,doctype和DTD參考,將不勝感激
顯示默認行為以及更改行為的代碼:
String inputXml = "<root><value>Test</value></root>";
// Build DOM tree for input XML
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
Document document = domBuilder.parse(new InputSource(new StringReader(inputXml)));
// Print DOM XML using default settings
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult(System.out));
System.out.println(); System.out.println();
// Print DOM XML using specific settings
document.setXmlVersion("1.1");
transformer.setOutputProperty(OutputKeys.ENCODING, "windows-1252");
transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "ROOT-VALUE");
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "RootValue.dtd");
transformer.transform(new DOMSource(document), new StreamResult(System.out));
輸出 (使用Java 1.8.0_51)
<?xml version="1.0" encoding="UTF-8" standalone="no"?><root><value>Test</value></root>
<?xml version="1.1" encoding="windows-1252" standalone="no"?><!DOCTYPE root PUBLIC "ROOT-VALUE" "RootValue.dtd">
<root><value>Test</value></root>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.