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文件相关推荐

  1. 【Java】四种方法复制视频文件比较

    package Demo4;import java.io.*;public class CopyMp4Demo {public static void main(String[] args) thro ...

  2. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

  3. 如何给电脑文件加密?分享四种方法!

    想要给文件设置加密,防止他人查看自己的文件,分享四种方法给电脑文件加密. 一:隐藏文件 如果不想给文件设置密码,我们可以将文件隐藏起来,这样设置之后,文件就不会再显示在文件夹里了,想要隐藏文件,我们只 ...

  4. Android生成Xml文件

    我们在开发的过程中,有时会用到将一些数据保存到xml文件中,在Android中给我们提供了xml序列化来帮我们创建一个xml文件,这里我用两种方式来创建xml文件. 一.使用字符串拼接的方式来创建 二 ...

  5. php如何新建xml文件,PHP中的生成XML文件的4种方法分享

    生成如下XML串 Xml代码 title1 content1 2009-10-11 title2 content2 2009-11-11 方法I.[直接生成字符串]使用纯粹的PHP代码生成字符串,并把 ...

  6. PHP怎么读写XML?(四种方法)

    PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...

  7. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  8. php格式图片怎么打开方式,php格式文件打开的四种方法

    php文件格式怎么打开?要搞清楚php文件用什么打开,首先我们来看php文件是什么文件,PHP是一个网页脚本,文件后缀名为.php,如下图: 但不同于html xml 标签语言,直接可以通过浏览器打开 ...

  9. php保存文件和下载文件到本地的四种方法

    php保存文件和下载文件到本地的四种方法   本文操作环境:windows7系统.PHP7.1版,DELLG3电脑   php保存文件的方法   PHP下载保存文件到本地   经常需要点击按钮,然后弹 ...

最新文章

  1. 【android】两个按钮的宽度各占屏幕的一半
  2. 职业生涯第二年回顾(2011.2~2012.2)
  3. vim学习、各类插件配置与安装
  4. jquery判断多选框是否选中
  5. Python实现跨文件全局变量的方法
  6. Linux下简单线程池的实现
  7. c++中默认32位int类型转换截取高位部分
  8. note同步不及时 one_朱海舟回应锤子便签同步不及时:工程师已经解决
  9. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
  10. HDU计算机网络系统2021复习提纲
  11. html5粒子引擎 proton,质子引擎 Proton Engine
  12. Struts1——文件上传
  13. python 基于百度aip库 实现识别图片中的文字
  14. 周易六十四卦——水火既济卦
  15. python 归一化使用
  16. 金融IC卡非接触式快速支付的先天缺陷与补救措施
  17. Android设置app显示指定国家语言
  18. 及时备份数据可以保护计算机系统吗,电脑数据的保护和备份
  19. 采用GlodWave软件制作个性化铃声
  20. linux下运行directx,使用DXVK在Linux上改善您的葡萄酒游戏

热门文章

  1. 计算机等级一级最好还是,计算机等级考试一级哪个好考
  2. c语言 while后面加,下面代码的C语言中while(x)是什么意思
  3. 《流畅的python》学习笔记
  4. Ubuntu文件缺失解决办法
  5. 网站的SEO优化(提高搜索引擎收录,类似百度)
  6. ps切图插件Cutterman Mac中文版
  7. c# 调用Microsoft XPS Document Writer打印机,将Pdf文件转换成Xps文件
  8. 修复系统解决Press [F11] to start recovery system问题
  9. 睿赛德科技携手中国电子学会、意法半导体、广和通,共建嵌入式人才认证与培养体系...
  10. windows10系统超全面优化攻略,不浪费电脑性能。