四种方法生成XML文件
1. DOM
public class DomTest {public static void main(String[] args) throws Exception {//创建一个DocumentBuilderFactory对象DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//创建一个DocumentBuilder对象DocumentBuilder db = dbf.newDocumentBuilder();//获取Document对象,代表着要生成的DOM树Document document = db.newDocument();//根节点添加进DOM树Element bookstore = document.createElement("bookstore");document.appendChild(bookstore);//根节点的子节点,并添加属性Element book = document.createElement("book");bookstore.appendChild(book);book.setAttribute("id","1");//添加属性//子节点的子节点,添加文本内容Element name = document.createElement("name");book.appendChild(name);name.setTextContent("鲁宾逊漂流记");/*DOM树转换成XML文件*///创建TransformerFactory对象,Factory为工厂类,不能直接new对象,通过newInstance获取对象TransformerFactory tff = TransformerFactory.newInstance();//通过TransformerFactory对象获取Transformer对象Transformer tf = tff.newTransformer();//设置生成的XML文件自动换行tf.setOutputProperty(OutputKeys.INDENT, "yes");//生成XML文件tf.transform(new DOMSource(document), new StreamResult(new File("book.xml")));}
}
2. SAX
上篇文章中将解析的XML文件内容存到了book类的集合中,所以这里通过集合进行生成XML文件
public class SaxTest {public static void main(String[] args) throws Exception {ArrayList<Book> bookList = parseXML();//1..创建一个SAXTransformerFactory类的对象SAXTransformerFactory stff = (SAXTransformerFactory) SAXTransformerFactory.newInstance();//2..通过SAXTransformerFactory类的对象创建TransformerHandler类的对象TransformerHandler handler = stff.newTransformerHandler();//3..过TransformerHandler类的对象创建Transformer类的对象Transformer tr = handler.getTransformer();//4..通过Transformer类的对象对要生成的XML文件进行设置//设置字符编码;是否换行tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");tr.setOutputProperty(OutputKeys.INDENT, "yes");//5..创建result对象File f = new File("book.xml");if(!f.exists())f.createNewFile();Result result = new StreamResult(new FileOutputStream(f));//6..将handler和result对象相关联handler.setResult(result);//7..通过handler对象编写XML文件内容handler.startDocument();AttributesImpl attr = new AttributesImpl();handler.startElement(null, null, "bookstore", attr);for (Book book : bookList) {attr.clear();attr.addAttribute(null, null, "id", null, "1");handler.startElement(null, null, "book", attr);if(book.getName()!=null){handler.startElement(null, null, "name", null);handler.characters(book.getName().toCharArray(), 0, book.getName().toCharArray().length);handler.endElement(null, null, "name");}if(book.getAuthor()!=null){handler.startElement(null, null, "author", null);handler.characters(book.getAuthor().toCharArray(), 0, book.getAuthor().toCharArray().length);handler.endElement(null, null, "author");}if(book.getYear()!=null){handler.startElement(null, null, "year", null);handler.characters(book.getYear().toCharArray(), 0, book.getYear().toCharArray().length);handler.endElement(null, null, "year");}if(String.valueOf(book.getPrice())!=null){handler.startElement(null, null, "price", null);handler.characters(String.valueOf(book.getPrice()).toCharArray(), 0, String.valueOf(book.getPrice()).toCharArray().length);handler.endElement(null, null, "price");}if(book.getLanguage()!=null){handler.startElement(null, null, "language", null);handler.characters(book.getLanguage().toCharArray(), 0, book.getLanguage().toCharArray().length);handler.endElement(null, null, "language");}handler.endElement(null, null, "book");}handler.endElement(null, null, "bookstore");handler.endDocument();}
}
3. DOM4J生成RSS
RSS(简易信息聚合)是一种基于XML标准,在互联网上被广泛采用的内容包装和投递协议。
发布一个RSS文件后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用,是一种描述和同步网站内容的格式。
public class DOM4JTest {public static void main(String[] args) throws Exception {//1..创建document对象,代表整个XML稳定Document document = DocumentHelper.createDocument();//2..创建根节点rssElement rss = document.addElement("rss");//3..添加节点属性rss.addAttribute("version", "2.0");//4..生成子节点并添加节点内容Element channel = rss.addElement("channel");Element title = channel.addElement("title");title.setText("新闻");//5..设置格式(自动换行,缩进)OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("gbk");//6..生成XML文件XMLWriter writer = new XMLWriter(new FileOutputStream(new File("rss.xml")),format);writer.write(document);}
}
4. JDOM生成RSS
public class JDOMTest {public static void main(String[] args) throws Exception {//1..生成根节点,添加属性Element rss = new Element("rss");rss.setAttribute("version", "2.0");//2..生成document对象Document document = new Document(rss);//3..生成子节点,添加节点内容Element channel = new Element("channel");rss.addContent(channel);Element title = new Element("title");title.setText("新闻");channel.addContent(title);//3..设置XML文件格式Format format = Format.getPrettyFormat();//3..生成XML文件XMLOutputter out = new XMLOutputter(format);out.output(document, new FileOutputStream("rss.xml"));}
}
四种方法生成XML文件相关推荐
- 【Java】四种方法复制视频文件比较
package Demo4;import java.io.*;public class CopyMp4Demo {public static void main(String[] args) thro ...
- 详解Java解析XML的四种方法
http://developer.51cto.com 2009-03-31 13:12 cnlw1985 javaeye 我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...
- 如何给电脑文件加密?分享四种方法!
想要给文件设置加密,防止他人查看自己的文件,分享四种方法给电脑文件加密. 一:隐藏文件 如果不想给文件设置密码,我们可以将文件隐藏起来,这样设置之后,文件就不会再显示在文件夹里了,想要隐藏文件,我们只 ...
- Android生成Xml文件
我们在开发的过程中,有时会用到将一些数据保存到xml文件中,在Android中给我们提供了xml序列化来帮我们创建一个xml文件,这里我用两种方式来创建xml文件. 一.使用字符串拼接的方式来创建 二 ...
- php如何新建xml文件,PHP中的生成XML文件的4种方法分享
生成如下XML串 Xml代码 title1 content1 2009-10-11 title2 content2 2009-11-11 方法I.[直接生成字符串]使用纯粹的PHP代码生成字符串,并把 ...
- PHP怎么读写XML?(四种方法)
PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- php格式图片怎么打开方式,php格式文件打开的四种方法
php文件格式怎么打开?要搞清楚php文件用什么打开,首先我们来看php文件是什么文件,PHP是一个网页脚本,文件后缀名为.php,如下图: 但不同于html xml 标签语言,直接可以通过浏览器打开 ...
- php保存文件和下载文件到本地的四种方法
php保存文件和下载文件到本地的四种方法 本文操作环境:windows7系统.PHP7.1版,DELLG3电脑 php保存文件的方法 PHP下载保存文件到本地 经常需要点击按钮,然后弹 ...
最新文章
- 【android】两个按钮的宽度各占屏幕的一半
- 职业生涯第二年回顾(2011.2~2012.2)
- vim学习、各类插件配置与安装
- jquery判断多选框是否选中
- Python实现跨文件全局变量的方法
- Linux下简单线程池的实现
- c++中默认32位int类型转换截取高位部分
- note同步不及时 one_朱海舟回应锤子便签同步不及时:工程师已经解决
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
- HDU计算机网络系统2021复习提纲
- html5粒子引擎 proton,质子引擎 Proton Engine
- Struts1——文件上传
- python 基于百度aip库 实现识别图片中的文字
- 周易六十四卦——水火既济卦
- python 归一化使用
- 金融IC卡非接触式快速支付的先天缺陷与补救措施
- Android设置app显示指定国家语言
- 及时备份数据可以保护计算机系统吗,电脑数据的保护和备份
- 采用GlodWave软件制作个性化铃声
- linux下运行directx,使用DXVK在Linux上改善您的葡萄酒游戏
热门文章
- 计算机等级一级最好还是,计算机等级考试一级哪个好考
- c语言 while后面加,下面代码的C语言中while(x)是什么意思
- 《流畅的python》学习笔记
- Ubuntu文件缺失解决办法
- 网站的SEO优化(提高搜索引擎收录,类似百度)
- ps切图插件Cutterman Mac中文版
- c# 调用Microsoft XPS Document Writer打印机,将Pdf文件转换成Xps文件
- 修复系统解决Press [F11] to start recovery system问题
- 睿赛德科技携手中国电子学会、意法半导体、广和通,共建嵌入式人才认证与培养体系...
- windows10系统超全面优化攻略,不浪费电脑性能。