Java四种生成xml文件的方法
来源:互联网 发布:用java开发apk的步骤 编辑:程序博客网 时间:2024/05/21 14:03
学习来源于视频:imooc网
1,DOM
//创建一个DocumentBuilderFactory对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); //创建一个DocumentBuilder对象 try { DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.newDocument(); document.setXmlStandalone(true); Element bookstore = document.createElement("bookStore"); //向bookStore根节点中添加子节点 Element book = document.createElement("book"); book.setAttribute("id", "1"); Element name = document.createElement("name"); name.setTextContent("sdingba"); book.appendChild(name); //将book节点添加到bookstore中 bookstore.appendChild(book); //将bookstore节点(已经包含book),添加到dom树中 document.appendChild(bookstore); //生成xml对象 //创建TransformerFactory TransformerFactory tff = TransformerFactory.newInstance(); //创建Transformer对象 Transformer tf = tff.newTransformer(); //设置 生成的xml文件是否换行。 tf.setOutputProperty(OutputKeys.INDENT,"yes"); tf.transform(new DOMSource(document), new StreamResult(new File("book.xml"))); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); }
2,SAX
//1,创建 一个TransformerFactory的类的对象 SAXTransformerFactory tff = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); try { //2,通过SAXTransformerFactory对象创建一个TransformerHandler对象 TransformerHandler handler = tff.newTransformerHandler(); //3.通过handler对象创建一个Transformor Transformer tr = handler.getTransformer(); //4,通过对象,对生成的xml文件进行设置 tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); tr.setOutputProperty(OutputKeys.INDENT, "yes"); //5,创建一个result对象 File file = new File("book2.xml"); if (!file.exists()) { file.createNewFile(); } //6,创建resulet对象,并且是的与handler关联 Result result = new StreamResult(new FileOutputStream(file)); handler.setResult(result); //7.利用handler对象进行xml文件内容的编写 //打开document handler.startDocument(); AttributesImpl attr = new AttributesImpl(); handler.startElement("", "", "bookstart", attr); attr.clear(); //// for(){} 在for循环中添加数据。对了List数值进行遍历 //添加一本书 attr.addAttribute("","","id","","1"); handler.startElement("", "", "book", attr); //创建name节点 attr.clear(); handler.startElement("", "", "name", attr); handler.characters("你是我的女神".toCharArray(),0,"你是我的女神".length()); handler.endElement("","","name"); // 。。。。。 handler.endElement("","","book"); handler.endElement("","","bookstart"); //关闭 handler.endDocument(); } catch (TransformerConfigurationException e) { } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); }
3,DOM4J
//1,创建 document对象,代表整个xml文档 Document document = DocumentHelper.createDocument(); //2,创建 根节点 Element rss = document.addElement("rss"); //向rrs中添加属性 rss.addAttribute("version", "2.0"); //3,生成子节点和节点内容 Element channel = rss.addElement("channel"); Element title = channel.addElement("title"); title.setText("国内新闻"); //要在下面设置是否转义// title.setText("<![CDATA[国内新闻]]>"); //设置xml的格式 OutputFormat format = OutputFormat.createPrettyPrint();// format.setEncoding("GBK");设置编码格式 //4,生成xml文件 File file = new File("rss.xml"); XMLWriter write = null; try { write = new XMLWriter(new FileOutputStream(file),format); //设置是否转义,默认值是true,代表转义 write.setEscapeText(false); write.write(document); write.close(); } catch (IOException e) { e.printStackTrace(); }
4,JDOM
//生成一个根节点 Element rss = new Element("rss"); rss.setAttribute("version", "2.0"); //生成一个document对象 Document document = new Document(rss); Element channel = new Element("channel"); rss.addContent(channel); Element title = new Element("title");// title.setText("国内最新新闻"); title.setText("<![CDATA[新闻联盟]]>"); channel.addContent(title); Format format = Format.getCompactFormat(); format.setIndent(""); format.setEncoding("UTF-8");// format.setTextMode(Format.TextMode.TRIM);// format.setOmitEncoding(false);// format.setSpecifiedAttributesOnly(true); //4,创建xmlOutputer对象 XMLOutputter outputer = new XMLOutputter(); //5.利用outputer对象,将document转化成一个流 try { outputer.output(document, new FileOutputStream(new File( "rssjdom.xml" ))); } catch (IOException e) { e.printStackTrace(); }
0 0
- Java四种生成xml文件的方法
- 四种方法生成XML文件
- Java生成xml文件的四种方式
- JAVA生成和解析XML的四种方法比较
- Java编程操作XML文件(生成方法四:DOM4J)
- JAVA解析XML文件的四种方法
- Java解析XML文件的四种方法
- Java解析XML文件的四种方法
- java读取xml文件的四种方法
- Java读取xml文件的四种方法
- Java读取xml文件的四种方法
- Java读取xml文件的四种方法
- Java解析XML文件的四种方法【学习】
- java读取xml文件的四种方法
- Java解析XML文件的四种方法
- java解析XML文件的四种方法
- Java读取xml文件的四种方法
- Java读取xml文件的四种方法
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- 简单的http过滤模块
- Android 高清加载巨图方案 拒绝压缩图片
- 实战Nginx与PHP(FastCGI)的安装、配置与优化
- java基础知识(标识符,命名规则,注释)
- Java四种生成xml文件的方法
- LeetCode 89. Gray Code(生成格雷码)
- 得到格式化的时间
- Android Studio NDk调试(基于gradle-experimental插件与LLDB)
- Codeforces 667D World Tour (最短路+枚举)
- 【周总结】——收拾行囊
- 【LeetCode】Power of Two 解题报告
- Marklogic学习 由浅入深(7)—— Marklogic应用开发指引
- android 5.x—Tinting着色和Clipping裁剪