-
生成xml // 1.創(chuàng)建一個TransformerFactory類的對象 SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); try { // 2.通過SAXTransformerFactory對象創(chuàng)建一個TransformerHandler對象 TransformerHandler handler = tff.newTransformerHandler(); // 3.通過handler對象創(chuàng)建一個Transformer對象 // Transformer tr = handler.getTransformer(); // // 4.通過Transformer對象對生成的xml文件進行設(shè)置 // // 設(shè)置xml的編碼 // tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // // 設(shè)置xml的“是否換行” // tr.setOutputProperty(OutputKeys.INDENT, "yes"); // 5.創(chuàng)建一個Result對象 File f = new File("src/res/newbooks.xml"); if (!f.exists()) { f.createNewFile(); } // 6.創(chuàng)建Result對象,并且使其與handler關(guān)聯(lián) Result result = new StreamResult(new FileOutputStream(f)); handler.setResult(result);查看全部
-
document.setxmlStandalone(true)將它設(shè)置成true其實就相當于standalone 等于yes,并且他會不顯示。因為默認他就是不顯示的,默認值就是yes.查看全部
-
standalone = "no"http://如果等于yes的話說明當前的xml文件是沒有dtd和schema作為他的說明文檔的。如果等于no,說明他有dtd和schema解釋說明他的內(nèi)容允許有哪些值以及允許的值的一些形式。由于當前xml文件是很簡單的xml文件她不涉及格式說明要求,所以我們不需要standalone,也就是說應(yīng)該把它設(shè)置成為yes,并且不顯示在我們的第一行聲明部分查看全部
-
document.setXmlStandalone(true);可以改為yes并隱藏查看全部
-
1.<?xml version="1.0" encoding="utf-8" standalone="yes/no"?> yes:說明當前的xml文件是沒有DTD和Schema作為它的相關(guān)文檔的;no:相反 2. 節(jié)點對象.setTextContent 可以為文本節(jié)點添加節(jié)點值(這里直接給Element節(jié)點setValue添加節(jié)點值是不行的,Element的nodeValue為null)查看全部
-
DOm解析方式提供給我們一個輸出流叫StreamResult();如圖查看全部
-
注意!查看全部
-
document 代表我們要放在xml文件中整個的一個dom樹。查看全部
-
1.通過TransformerFactory.newInstance() 創(chuàng)建TransformerFactory對象tff把document對象轉(zhuǎn)換為xml文件 來自 <http://idcbgp.cn/video/5200/0> 2.通過tff.newTransformer()創(chuàng)建Transformer對象tf 3.通過tf.transform(newDOMSource(document),new StreamResult(new File("books1.xml"))),并且捕捉異常 運行后,發(fā)現(xiàn)沒有輸出,但是已經(jīng)生產(chǎn)了,refresh一下有了books1.xml 打開生產(chǎn)的xml文件,發(fā)現(xiàn)沒有換行??梢栽谥暗拇a中添加tf.setOutputProperty(OutputKeys.INDENT,"yes"); OutputKeys.INDENT代表是否換行,yes 代表 換行。查看全部
-
1.通過DocumentBuilderFactory.newInstance()實例一個DocumentBuilderFactory對象dbf。 2.通過dbf.newDocumentBuilder()創(chuàng)建DocumentBuilder對象db,注意捕捉異常 3.通過db.newDocument()創(chuàng)建Document對象document. 4.通過document.createElement("bookstore");創(chuàng)建一個bookstore節(jié)點 5.通過document.createElement("book");為bookstore創(chuàng)建一個book節(jié)點 6.通過boo.setAttribute("id","1");為book添加屬性。 7.通過bookstore.appendChild(book);將剛才創(chuàng)建的book節(jié)點添加到bookstore根節(jié)點中。 8.通過document.appendChild(bookstore),將之前創(chuàng)建的bookstore節(jié)點(已經(jīng)包含了book),添加到dom樹中。 所以是 創(chuàng)建document,創(chuàng)建跟節(jié)點,創(chuàng)建子節(jié)點,為子節(jié)點添加屬性,再依次把子節(jié)點添加到父節(jié)點中,最多添加到根節(jié)點,添加到dom樹中。查看全部
-
JDOM生成XML不會轉(zhuǎn)義的方法: Element title = new Element("title"); CDATA cdata = new CDATA("上海移動互聯(lián)網(wǎng)產(chǎn)業(yè)促進中心正式揭牌"); title.setContent(cdata);查看全部
-
生成xml四種方式的性能對比:SAX DOM4J JDOM DOM 有快到慢查看全部
-
DOM:基于tree SAX:基于事件 JDOM、DOM4J:基于底層API DOM方便后續(xù)改動操作,但比較占用內(nèi)存,因為是加載整個DOM樹在內(nèi)存中。 SAX是逐步解析和寫入的,也就是說在寫入時,已經(jīng)操作完成的寫入部分是無法進行修改的,因為SAX是基于事件的,其將某一個標簽走完之后是不能走回頭路的,沒有狀態(tài)性可言,但SAX的性能是非常高的。 這兩種方式的選擇中很大一部分判斷基于是否對文檔進行頻繁的修改。查看全部
-
轉(zhuǎn)義操作將title.setText("<![CDATA[上海移動互聯(lián)網(wǎng)產(chǎn)業(yè)促進中心正式揭牌 ]]>");換成title.addContent(new CDATA("上海移動互聯(lián)網(wǎng)產(chǎn)業(yè)促進中心正式揭牌"));查看全部
-
Format fromat=Format.getCompactFormat(); format.setIndent(""); fromat.setEncodeing("GBK"); XMLOutputter outputer=new XMLOutputter(format);查看全部
舉報
0/150
提交
取消