java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载
工作需要,要生成xml文件,所以做了個小demo分享一下。
看代碼吧~ main()里面沒什么好說的 該寫的都寫了public static void main(String[] args) {
//調用 DocumentBuilderFactory.newInstance() 方法得到創建 DOM 解析器的工廠
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
Element theBook=null, theElem=null, root=null;
try {
factory.setIgnoringElementContentWhitespace(true);//是否刪除空格 false true
DocumentBuilder db=factory.newDocumentBuilder(); //獲取解析器
//指定路徑 獲取xml文件的document對象
File f = new File("src/book.xml");
Document xmldoc=db.parse(f);
root=xmldoc.getDocumentElement();
//添加 元素(節點)
theBook=xmldoc.createElement("book1");
theElem=xmldoc.createElement("name");
theElem.setTextContent("平凡的世界");
theBook.appendChild(theElem);
theElem=xmldoc.createElement("price");
theElem.setTextContent("¥55.0");
theBook.appendChild(theElem);
theElem=xmldoc.createElement("conment");
theElem.setTextContent("推薦大家看看這本書");
theBook.appendChild(theElem);
root.appendChild(theBook);
printXML(xmldoc);//打印至Console
saveXml("new_book.xml", xmldoc);//保存生成 xml文件
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
方法:printXML() 打印到Console
1.下面的方法中得到的transFactory對象調用newTransformer()方法得到一個Transformer對象:
Transformer transformer=transFactory. newTransformer();
Transformer類在javax.xml.transform包中。
將被變換的Document對象封裝到一個DOMSource對象中:
DOMSource ?domSource=new DOMSource(document);
DOMSource類在javax.xml.transform.dom包中。
將變換得到XML文件對象封裝到一個StreamResult對象中:
File file=new File("XXX.xml");
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
StreamResult類在javax.xml.transform.stream包中。
最后,Transformer 對象transformer 調用transform方法實施變換:
transformer.transform(domSource, xmlResult);
2.transformer.setOutputProperty("indent","yes");這里比較無語 只給了 是否設置縮進 只有yes|no
你選擇的是yes也就等于格式化了xml,效果如下:
默認縮進的是0
關于這個縮進問題 我還沒處理好呢
這里給個參考鏈接吧:http://blog.csdn.net/yes1983/article/details/2487455
(ps:要是不在乎這個的話可以放棄這一步)public static void printXML(Node node) {
TransformerFactory transFactory=TransformerFactory.newInstance();
try {
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("encoding", "gb2312");//指定編碼
transformer.setOutputProperty("indent", "yes"); //是否設置縮進
DOMSource source=new DOMSource();
source.setNode(node);
StreamResult result=new StreamResult();
result.setOutputStream(System.out);
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
方法:saveXml() 保存生成xml文件public static void saveXml(String fileName, Document doc) {
TransformerFactory transFactory=TransformerFactory.newInstance();
try {
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty("indent", "yes");//是否設置縮進
DOMSource source=new DOMSource();
source.setNode(doc);
StreamResult result=new StreamResult();
result.setOutputStream(new FileOutputStream(fileName));
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
運行結果:
生成的新的xml文件內容:
最后我想說一下編碼 開始的時候一定要統一編碼 不然生成的xml文件會亂碼的!
由最代碼官方編輯于2014-8-14 16:44:29
總結
以上是生活随笔為你收集整理的java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: angularjs html 缓存,如何
- 下一篇: php怎么设置网站的字符编码,php如何