-
生成带文本的子节点 // 7.利用handler对象进行xml文件内容的编写O // 打开document handler.startDocument(); AttributesImpl attr = new AttributesImpl(); handler.startElement("", "", "bookstore", attr); for (Book book : bookList) { attr.clear(); attr.addAttribute("", "", "id", "", book.getId()); handler.startElement("", "", "book", attr); // 创建name节点 if (book.getName() != null && !book.getName().trim().equals("")) { attr.clear(); handler.startElement("", "", "name", attr); handler.characters(book.getName().toCharArray(), 0, book .getName().length()); handler.endElement("", "", "name"); } ...//类似创建name节点(price、language...等等) handler.endElement("", "", "book"); } handler.endElement("", "", "bookstore"); // 关闭document handler.endDocument(); } Ps1:setResult()必须在startDocument()之前调用。 Ps2:void characters(char[] ch,int start,int length)throws SAXException。查看全部
-
####一、主要用到的类: 1. SAXTransformerFactory:用于创建TransformerHandler实例 2. TransformerHandler:用于生成解析文档 3. Transformer:用于格式化输出的结果 4. Result:用于保存TransformerHandler产生的结果 ####二、主要的流程 // 创建一个工厂类实例,用于创建Handler实例 SAXTransformerFactory factory = (SAXTransformerFactory)SAXTransformer.newInstance(); // 从工厂实例中获取Handler实例 TransformerHandler handler = factory.newTransformerHandler(); // 创建一个格式化传输器 Transformer transformer = handler.getTransformer(); // 设置输出属性:OutputKeys.IDENNT="yes"表示输出结果带换行 former.setOutputProperty(OutputKeys.IDENNT,"yes"); // 创建转换结果持有器,用于保存Handler输出的结果 Result result = new StreamResult(new File("demo.txt")); // 建立handler与result之间的关联,确保handler处理的结果能正确的保存到result中 handler.setResult(result); // handler处理文档的细节(略)查看全部
-
SAX 生成 XML 的准备工作 public void createXML() { // 生成xml // 1.创建一个TransformerFactory类的对象 SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); try { // 2.通过SAXTransformerFactory对象创建一个TransformerHandler对象 TransformerHandler handler = tff.newTransformerHandler(); // 3.通过handler对象创建一个Transformer对象 Transformer tr = handler.getTransformer(); // 4.通过Transformer对象对生成的xml文件进行设置 // 设置xml的编码 tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // 设置xml的“是否换行” tr.setOutputProperty(OutputKeys.INDENT, "yes"); // 5.创建一个Result对象 File f = new File("src/res/newbooks.xml"); if (!f.exists()) { f.createNewFile(); } // 6.创建Result对象,并且使其与handler关联 Result result = new StreamResult(new FileOutputStream(f)); handler.setResult(result);查看全部
-
//factory工厂类不能直接new,需要用newInstance()来完成。<br> TransformerFactory tff=TransformerFactory.newInstance();<br> //创建transformer对象 <br> Transformer tf = tff.newTransformer();<br> //在生成的xml文件中换行<br> tf.setOutputProperty(OutputKeys.INDENT,"yes"); <br> //转化为xml类型文件,<br> tf.transform(new DOMSource(document),new StreamResult(new file("books1.xml")));查看全部
-
DOM方法 1.通过DocumentBuilderFactory.newInstance()实例一个DocumentBuilderFactory对象dbf。 2.通过dbf.newDocumentBuilder()创建DocumentBuilder对象db,注意捕捉异常 3.通过db.newDocument()创建Document对象document. 4.通过document.createElement("bookstore");创建一个bookstore节点 5.通过document.createElement("book");为bookstore创建一个book节点 6.通过boo.setAttribute("id","1");为book添加属性。 7.通过bookstore.appendChild(book);将刚才创建的book节点添加到bookstore根节点中。 8.通过document.appendChild(bookstore),将之前创建的bookstore节点(已经包含了book),添加到dom树中。 所以是 创建document,创建跟节点,创建子节点,为子节点添加属性,再依次把子节点添加到父节点中,最多添加到根节点,添加到dom树中。查看全部
-
DOM和SAX会生成xml文件 JDOM和DOM4J会生成一个全新的RSS文件查看全部
-
DOM方法 1.通过DocumentBuilderFactory.newInstance()实例一个DocumentBuilderFactory对象dbf 2.通过dbf.newDocumentBuilder()创建DocumentBuilder对象db,注意捕捉异常 3.通过db.newDocument()创建Document对象document 4.通过document.createElement("bookstore");创建一个bookstore根节点 5.通过document.createElement("book");为bookstore创建一个book节点 6.通过book.setAttribute("id","1");为book添加属性。 7.通过bookstore.appendChild(book);将刚才创建的book节点添加到bookstore根节点中。 8.通过document.appendChild(bookstore),将之前创建的bookstore节点(已经包含了book),添加到dom树中。 创建document->创建根节点->创建子节点->为子节点添加属性->依次把子节点添加到父节点中->父节点添加到根节点,添加到dom树中。查看全部
-
注意:setResult一定要在startDocument之前,否则报异常 //为节点添加文本, 将book的name字符串转为字符数组,截取0-字符大小的字符 handler.characters(book.getName().toCharArray(), 0, book.getName().length()); void characters(char[] ch, int start, int length) 接收字符数据的通知。查看全部
-
standalone : 用来表示该文件是否呼叫其它外部的文件。若值是 ”yes” 表示没有呼叫外部文件,即说明当前的xml文件是没有DTD和Schema作为它的相关文档,若值是 ”no” 则表示有呼叫外部文件。默认值是 “yes”。 DTD:文档类型定义(Document Type Definition)是一套关于标记符的语法规则。查看全部
-
添加子节点: 1.先new一个Element对象 2.调用节点的addContent()方法,将子节点添加到节点中 3.应用节点的setText()方法,给节点添加内容查看全部
-
生成节点之间的文字:调用Element对象的setTextContent()方法查看全部
-
将DOM树转换成XML文件: 1.首先获取到Transformer对象(通过工厂模式获取到) 2.调用Transfomer对象的transformer(DocumentSource,StreamResult)方法(),进行转换 PS:要想生成格式化后的XML文件,需调用Transfomer对象的setOutputProperty(outputKeys.indent,"yes")查看全部
-
应用DOM(dom数)方式生成XML文件的准备工作: 1.获取到DocumentBuilder对象(获取方式是通过工厂模式获取) 生成XML(向XML中添加节点和属性)的步骤: 1.获取documentBuilder对象 2.通过documentBuilder的newDocument()方法获取到dom树对象 3.通过document对象的creatElement()方法创建根节点Element 4.通过document对象的appendChild()方法将节点添加到dom树种 5.通过Element对象的setAttribute()方法给节点添加属性查看全部
-
XML的四种读写方式 DOM:基于DOM Tree 会存在内存中,可以频繁的修改 SAX:基于事件 不会存在于内存,无法返回修改 DOM4J:基于底层API JDOM:基于底层API DOM和SAX的选择基于是否对文档进行频繁的修改查看全部
-
rss源码查看全部
举报
0/150
提交
取消