-
####一、主要用到的類: 1. SAXTransformerFactory:用于創(chuàng)建TransformerHandler實(shí)例 2. TransformerHandler:用于生成解析文檔 3. Transformer:用于格式化輸出的結(jié)果 4. Result:用于保存TransformerHandler產(chǎn)生的結(jié)果 ####二、主要的流程 // 創(chuàng)建一個(gè)工廠類實(shí)例,用于創(chuàng)建Handler實(shí)例 SAXTransformerFactory factory = (SAXTransformerFactory)SAXTransformer.newInstance(); // 從工廠實(shí)例中獲取Handler實(shí)例 TransformerHandler handler = factory.newTransformerHandler(); // 創(chuàng)建一個(gè)格式化傳輸器 Transformer transformer = handler.getTransformer(); // 設(shè)置輸出屬性:OutputKeys.IDENNT="yes"表示輸出結(jié)果帶換行 former.setOutputProperty(OutputKeys.IDENNT,"yes"); // 創(chuàng)建轉(zhuǎn)換結(jié)果持有器,用于保存Handler輸出的結(jié)果 Result result = new StreamResult(new File("demo.txt")); // 建立handler與result之間的關(guān)聯(lián),確保handler處理的結(jié)果能正確的保存到result中 handler.setResult(result); // handler處理文檔的細(xì)節(jié)(在下一個(gè)筆記里面)查看全部
-
public void createXML() { // 生成xml // 1.創(chuàng)建一個(gè)TransformerFactory類的對(duì)象 SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); try { // 2.通過SAXTransformerFactory對(duì)象創(chuàng)建一個(gè)TransformerHandler對(duì)象 TransformerHandler handler = tff.newTransformerHandler(); // 3.通過handler對(duì)象創(chuàng)建一個(gè)Transformer對(duì)象 Transformer tr = handler.getTransformer(); // 4.通過Transformer對(duì)象對(duì)生成的xml文件進(jìn)行設(shè)置 // 設(shè)置xml的編碼 tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // 設(shè)置xml的“是否換行” tr.setOutputProperty(OutputKeys.INDENT, "yes"); // 5.創(chuàng)建一個(gè)Result對(duì)象 File f = new File("src/res/newbooks.xml"); if (!f.exists()) { f.createNewFile(); } // 6.創(chuàng)建Result對(duì)象,并且使其與handler關(guān)聯(lián) Result result = new StreamResult(new FileOutputStream(f)); handler.setResult(result);查看全部
-
standalone表示該xml是不是獨(dú)立的,如果是yes,則表示這個(gè)XML文檔時(shí)獨(dú)立的,不能引用外部的DTD規(guī)范文件;如果是no,則該XML文檔不是獨(dú)立的,表示可以引用外部的DTD規(guī)范文檔。 <?xml version="1.0" encoding="utf-8" standalone="yes/no"?> 生成XML文件子節(jié)點(diǎn)的文本內(nèi)容<br> 1,將子節(jié)點(diǎn)添加進(jìn)DOM樹<br> Element ele2 = new Element("name");<br> ele1.append(ele2);<br> 2, 設(shè)置子節(jié)點(diǎn)的文本內(nèi)容<br> ele2.setTextContent("String");查看全部
-
將DOM樹轉(zhuǎn)換成XML文件 1,創(chuàng)建TransformerFactory對(duì)象,F(xiàn)actory為工廠類,不能直接new對(duì)象,通過newInstance獲取對(duì)象 TransformerFactory tff = TransformerFactory.newInstance(); 2,通過tff獲取Transfomer對(duì)象 Transformer tf = tff.newTransformer(); 3,指定換行格式 tf.setOutputProperty(OutputKeys.INDENT,"yes"); 4,用DOM樹生成XML文件,將DOM樹以及輸出流作為參數(shù)傳入 tf.transform(new DOMSource(Document do),new StreamResult(new File("books1.xml"));查看全部
-
用DOM方法創(chuàng)建XML文件: 1、獲取DocumentBuilderFactory對(duì)象: DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2、通過DocumentBuilderFactory對(duì)象,獲取DocumentBuilder對(duì)象: DocumentBuilder db = dbf.newDocumentBuilder(); 3、通過DocumentBuilder的newDocument方法獲取Document對(duì)象,代表著要生成的DOM樹 Document do = db.newDocument(); 4、將根節(jié)點(diǎn)添加進(jìn)DOM樹 Element bookstore= document.createElement("bookStore"); document.appendChild(bookstore); 5、將子節(jié)點(diǎn)添加進(jìn)DOM樹 Element book = document.createElement("book"); bookstore.appendChild(book) 6、將子節(jié)點(diǎn)的屬性及屬性值添加進(jìn)DOM樹 book.setAttribute("id","1"); 即:通過當(dāng)前節(jié)點(diǎn)的appendChild("節(jié)點(diǎn)名");方法為其添加子節(jié)點(diǎn) 通過document的createElement("節(jié)點(diǎn)名");方法來建立新的節(jié)點(diǎn)查看全部
-
DOM和SAX生成xml文件 JDOM和DOM4J會(huì)形成一個(gè)全新的RSS文件查看全部
-
domsax對(duì)比查看全部
-
生成document查看全部
-
sax生成xml前期準(zhǔn)備步驟查看全部
-
常用節(jié)點(diǎn)類型查看全部
-
轉(zhuǎn)義問題 Element title = new Element("title"); CDATA cdata = new CDATA("上海移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)促進(jìn)中心正式揭牌"); title.setContent(cdata);查看全部
-
通過JDOM方式生成XML文件步驟: 1,創(chuàng)建一個(gè)根節(jié)點(diǎn),并設(shè)置屬性以及屬性值 Element element = new Element("rss"); ele.setAttribute("version","2.0"); 2,創(chuàng)建Document對(duì)象,并將Element對(duì)象傳入進(jìn)去 Document document = new Document(element); (有了文檔之后就考慮如何將文檔與要生成的XML文件聯(lián)系起來,每種解析方式都提供了相應(yīng)的輸出流,原理都是通過一個(gè)方法將輸出流與Document對(duì)象聯(lián)系起來) 3,創(chuàng)建輸出流對(duì)象 XMLOutputter outputer = new XMLOutputter(format); outputer.output(document,new FileOutputStream(new File("xxx")));查看全部
-
public void createXML(){ ArrayList<Book> books=parseXML(); // 生成xml 1.創(chuàng)建一個(gè) SAXTransformerFactory 類的對(duì)象 SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); try{ // 2.通過SAXTransformerFactory對(duì)象創(chuàng)建一個(gè)TransformerHandler對(duì)象 TransformerHandler handler = tff.newTransformerHandler(); // 3.通過handler對(duì)象創(chuàng)建一個(gè)Transformer對(duì)象 Transformer tr = handler.getTransformer(); // 4.通過Transformer對(duì)象對(duì)生成的xml文件進(jìn)行設(shè)置 tr.setOutputProperty(outputKeys.ENCODING, "UTF-8");//設(shè)置xml的編碼 tr.setOutputProperty(outputKeys.INDENT, "yes");//設(shè)置xml的"是否換行" File f = new File("src/res/newbooks.xml");// 5.創(chuàng)建一個(gè)Result對(duì)象 if(!f.exists()){ f.createNewFile(); } Result result = new StreamResult(new FileOutputStream(f)); handler.setResult(result);//創(chuàng)建Result對(duì)象,并且使其與handler關(guān)聯(lián) }catch(TransformerConfigurationException e){throw new RuntimeException("轉(zhuǎn)換器手柄生成異常",e);}catch(FileNotFoundException e){throw new RuntimeException("找不到文件",e);}catch(IOException e){throw new RuntimeException("IO異常",e);} }查看全部
-
standalone表示該xml是不是獨(dú)立的 =yes,則說明這個(gè)xml文件是獨(dú)立的,沒有dtd和schema說明文檔進(jìn)行規(guī)范的 =no,則說明xml文件,有dtd和schema規(guī)范文檔查看全部
-
將DOM樹轉(zhuǎn)換成XML文件 1,創(chuàng)建TransformerFactory對(duì)象,F(xiàn)actory為工廠類,不能直接new對(duì)象,通過newInstance獲取對(duì)象 TransformerFactory tff = TransformerFactory.newInstance(); 2,通過tff獲取Transfomer對(duì)象 Transformer tf = tff.newTransformer(); 3,指定換行格式 tf.setOutputProperty(OutputKeys.INDENT,"yes"); 4,用DOM樹生成XML文件,將DOM樹以及輸出流作為參數(shù)傳入 tf.transform(new DOMSource(Document do),new StreamResult(new File("books1.xml"));查看全部
舉報(bào)
0/150
提交
取消