Java——SAX生成XML文件
SAX生成XML文件
准备工作
创建一个SAXTransformerFactory 类对象
//创建一个 SAXTransformerFactory 类对象 SAXTransformerFactory tff = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
通过SAXTransformerFactory 对象创建一个 Transformer 对象
//通过 SAXTransformerFactory 对象创建一个 TransformerHandler 对象 TransformerHandler handler = tff.newTransformerHandler();
设置 xml 文件编码格式和自动换行
//设置生成的 XML 文件编码格式 tr.setOutputProperty(OutputKeys.ENCODING, "utf-8"); //设置生成的 XML 文件自动换行 tr.setOutputProperty(OutputKeys.INDENT, "yes");
判断生成的 xml 文件 是否存在,不存在就创建一个新的
//如果不存在,就创建一个新的 XML 文件 File file = new File("newSchool.xml"); if (!file.exists()) {file.createNewFile(); }
创建一个 Result 对象,并且使其与 TransformerHandler对象关联
//创建一个Result 对象,并且使其与 TransformerHandler 对象关联 Result result = new StreamResult(new FileOutputStream(file)); handler.setResult(result);
利用 handler 对象进行 xml 文件内容的编写
打开 document
//打开 document handler.startDocument();
生成根节点标签
AttributesImpl atts = new AttributesImpl(); //根节点开始标签 handler.startElement("", "", "School", atts);
设置字节点的属性和属性值 并创建子节点的开始标签
//设置属性和属性值 atts.addAttribute("", "", "id", "", "1"); //子节点开始标签 handler.startElement("", "", "student", atts);
创建子节点下的 name 节点并给其添加内容
atts.clear(); //清空子节点设的值 //字节点下name节点开始标签 handler.startElement("", "", "name", atts); String name="小王"; handler.characters(name.toCharArray(), 0, name.length()); //字节点下name节点结束标签 handler.endElement("", "", "name");
有开始就结束,在 XML 当中标签都是成对出现的,下面就是结束标签,以及关闭 document对象
//子节点结束标签 handler.endElement("", "", "student");//根节点结束标签 handler.endElement("", "", "School");//关闭 document handler.endDocument();
运行结果:
<?xml version="1.0" encoding="utf-8"?><School> <student id="1"> <name>小王</name> </student> </School>
完整代码:
import javax.xml.transform.OutputKeys; import javax.xml.transform.Result; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult;import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl;public class CreateXMLBySAX {public static void main(String[] args) {//创建一个 SAXTransformerFactory 类对象SAXTransformerFactory tff = (SAXTransformerFactory)SAXTransformerFactory.newInstance();try {//通过 SAXTransformerFactory 对象创建一个 TransformerHandler 对象TransformerHandler handler = tff.newTransformerHandler();//通过 TransformerHandler 对象创建一个 Transformer 对象Transformer tr = handler.getTransformer();//设置生成的 XML 文件编码格式tr.setOutputProperty(OutputKeys.ENCODING, "utf-8");//设置生成的 XML 文件自动换行tr.setOutputProperty(OutputKeys.INDENT, "yes");//如果不存在,就创建一个新的 XML 文件File file = new File("newSchool.xml");if (!file.exists()) {file.createNewFile();}//创建一个Result 对象,并且使其与 TransformerHandler 对象关联Result result = new StreamResult(new FileOutputStream(file));handler.setResult(result);//利用 handler 对象进行 XML 文件内容的编写//打开 document handler.startDocument();//为了创建节点属性和属性值AttributesImpl atts = new AttributesImpl();//根节点开始标签handler.startElement("", "", "School", atts);//atts.clear(); //清空 atts 的值//设置属性和属性值atts.addAttribute("", "", "id", "", "1");//子节点开始标签handler.startElement("", "", "student", atts);atts.clear(); //清空子节点设的值//字节点下name节点开始标签handler.startElement("", "", "name", atts);String name="小王";handler.characters(name.toCharArray(), 0, name.length());//字节点下name节点结束标签handler.endElement("", "", "name");//子节点结束标签handler.endElement("", "", "student");//根节点结束标签handler.endElement("", "", "School");//关闭 document handler.endDocument();} catch (TransformerConfigurationException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}} }
转载于:https://www.cnblogs.com/szj-ang/p/7492618.html
Java——SAX生成XML文件相关推荐
- 2018.4.13 用java配置/生成Xml文件 结合IO流知识点
自己创建本地文件Hello.txt 里面有数据 小明/23/增城/广东 小花/12/浦东/上海 StudentManager.java package com.lanqiao.dmeo7;import ...
- java sax读写xml文件_使用SAXReader读取xml文件
搜索热词 原XML文件: 99999 5275 0 001 9999 20151221 018888 0100010 5275 6600 99898989 000 c1aaaax QD00112210 ...
- JAVA SAX解析XML文件
[代码] [Java]代码 view sourceprint? 001 package SAXparse; 002 003 004 import java.io.FileInputStream; 00 ...
- android sax创建xml文件
前两篇文章,对sax解析xml的方式简单说明,实现解析的功能.下面用sax来创建xml文件. 具体的如何使用sax创建xml,在程序中都加了相关的注释,还是直接上代码. package cn.com. ...
- oxygen 生成java对象_利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析...
首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...
- java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载
工作需要,要生成xml文件,所以做了个小demo分享一下. 看代码吧~ main()里面没什么好说的 该写的都写了public static void main(String[] args) { // ...
- java指定sql生成xml_SQL Server根据查询结果,生成XML文件
/* 'bcp' 不是内部或外部命令,也不是可运行的程序? 看看在C:\Program Files\Microsoft SQL Server\80\Tools\Binn里面有没有bcp.exe这个文件 ...
- SAX 解析XML文件:将XML转换成Java对象
本博客介绍的是解析本地XML文件,解析网络上的XML 本文写得比较简略,实际上项目应用更多的是解析网上的xml资源 使用SAX 处理XML需要一个Handler 对象,一般继承org.xml.sax, ...
- java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件
Java 如何使用dom方式读取和创建xml文件 发布时间:2020-11-11 17:08:31 来源:亿速云 阅读:101 作者:Leah 本篇文章给大家分享的是有关Java 如何使用dom方式读 ...
最新文章
- 【android】错误集锦及解决办法
- sql超低级用法(防遗忘)
- [Node.js]get/post请求
- CI Weekly #11 | 微服务场景下的自动化测试与持续部署
- 微信小程序wx.request请求服务器json数据并渲染到页面
- python线程池的使用
- ai取代程序员_AI取代了程序员的工作,程序员将何去何从?
- YouTube视频设置水印
- Truck History POJ - 1789 最小生成树Prim
- UINO优锘:干货分享 | 虚拟现实建模基础
- linux环境下的jmeter测试
- 虚假共识—阿比勒尼悖论:“枪打出头鸟”与“事后诸葛亮”
- 计算几何入门 1.3:凸包的构造——增量构造法
- SAP物料主数据视图维护状态及标识关系表
- CentOS7.6 无网络环境安装MySQL5.7.x
- Android开发使用LocationManager实现定位服务
- jfinal连接oracle_JFinal中多数据源的配置[本文是mysql+oracle]
- slxrom+v.21+原生android+4.2,小米MIX2S 魔趣OS 安卓9 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
- 在桌边垒砖块,求砖块右端距离桌边最大距离
- ceph节点journal盘更换