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