java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载

工作需要,要生成xml文件,所以做了个小demo分享一下。

看代码吧~ main()里面没什么好说的 该写的都写了public static void main(String[] args) {

//调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂

DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

Element theBook=null, theElem=null, root=null;

try {

factory.setIgnoringElementContentWhitespace(true);//是否删除空格 false true

DocumentBuilder db=factory.newDocumentBuilder(); //获取解析器

//指定路径 获取xml文件的document对象

File f = new File("src/book.xml");

Document xmldoc=db.parse(f);

root=xmldoc.getDocumentElement();

//添加 元素(节点)

theBook=xmldoc.createElement("book1");

theElem=xmldoc.createElement("name");

theElem.setTextContent("平凡的世界");

theBook.appendChild(theElem);

theElem=xmldoc.createElement("price");

theElem.setTextContent("¥55.0");

theBook.appendChild(theElem);

theElem=xmldoc.createElement("conment");

theElem.setTextContent("推荐大家看看这本书");

theBook.appendChild(theElem);

root.appendChild(theBook);

printXML(xmldoc);//打印至Console

saveXml("new_book.xml", xmldoc);//保存生成 xml文件

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

方法:printXML() 打印到Console

1.下面的方法中得到的transFactory对象调用newTransformer()方法得到一个Transformer对象:

Transformer transformer=transFactory. newTransformer();

Transformer类在javax.xml.transform包中。

将被变换的Document对象封装到一个DOMSource对象中:

DOMSource  domSource=new DOMSource(document);

DOMSource类在javax.xml.transform.dom包中。

将变换得到XML文件对象封装到一个StreamResult对象中:

File file=new File("XXX.xml");

FileOutputStream out=new FileOutputStream(file);

StreamResult xmlResult=new StreamResult(out);

StreamResult类在javax.xml.transform.stream包中。

最后,Transformer 对象transformer 调用transform方法实施变换:

transformer.transform(domSource, xmlResult);

2.transformer.setOutputProperty("indent","yes");这里比较无语 只给了 是否设置缩进 只有yes|no

你选择的是yes也就等于格式化了xml,效果如下:

5f44669d9023f819b9cfa4031178418d.png

默认缩进的是0

关于这个缩进问题 我还没处理好呢

这里给个参考链接吧:http://blog.csdn.net/yes1983/article/details/2487455

(ps:要是不在乎这个的话可以放弃这一步)public static void printXML(Node node) {

TransformerFactory transFactory=TransformerFactory.newInstance();

try {

Transformer transformer = transFactory.newTransformer();

transformer.setOutputProperty("encoding", "gb2312");//指定编码

transformer.setOutputProperty("indent", "yes"); //是否设置缩进

DOMSource source=new DOMSource();

source.setNode(node);

StreamResult result=new StreamResult();

result.setOutputStream(System.out);

transformer.transform(source, result);

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

}

}

方法:saveXml() 保存生成xml文件public static void saveXml(String fileName, Document doc) {

TransformerFactory transFactory=TransformerFactory.newInstance();

try {

Transformer transformer = transFactory.newTransformer();

transformer.setOutputProperty("indent", "yes");//是否设置缩进

DOMSource source=new DOMSource();

source.setNode(doc);

StreamResult result=new StreamResult();

result.setOutputStream(new FileOutputStream(fileName));

transformer.transform(source, result);

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

运行结果:

5f44669d9023f819b9cfa4031178418d.png

生成的新的xml文件内容:

5f44669d9023f819b9cfa4031178418d.png

最后我想说一下编码 开始的时候一定要统一编码 不然生成的xml文件会乱码的!

由最代码官方编辑于2014-8-14 16:44:29

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 模拟qq空间登陆_java最新完美实现模拟登录QQ登录QQ空间获取说说

package com.pengliu.config;import com.pengliu.util.http.HttpService;/*** desc: 全局公共属性配置*/public class baseConfig {//项目路径public static String javaProjectPathSystem.getProperty(“user.dir“);//QQ账号public static String qqNum;//QQ密码public stati…

java 对象工厂_Java设计模式之--工厂方式

在分析工厂模式之前,我们先看看普通模式下的Java三层结构。Controller(表现层)-Service(业务层)-Dao(持久层、数据库连接层),基于此三层结构完成JavaWeb相关业务。假设我们要完成的业务是添加员工信息,先创建Dao包,创建EmpDao接口和EmpDaoFac…

mysql 5.7 io 性能 aio_深入理解MySQL的InnoDB引擎

在MySQL中的引擎一文中说了,我们在几乎所有的情况下其实用的都是InnoDB引擎,这里我们就重点再看一下这个引擎,包括他的存储结构,线程模型和数据文件。我们可以通过show engine innodb status \G;(\G只是表示输出结果纵向表格输出)…

mysql 使用场景_MySQLMHA典型使用场景

1 管理节点部署位置1.1. Dedicated Manager server and multiple MySQL (master,slaves) servers 使用专用的管理服务1 管理节点部署位置1.1. Dedicated Manager server and multiple MySQL (master,slaves) servers使用专用的管理服务器管理多组MySQL主从服务器Since MHA Mana…

mysql构建数据立方体_OLAP数据建模工具Workbench的初步使用(数据立方体的建立)

OLAP数据建模工具Workbench的初步使用(数据立方体的建立)概要:1.workbench工具简介2.workbench简单操作(附demo)3.workbench初步使用总结1.workbench工具简介OLAP,(Online Analytical Processing,联机分析处理)。从事相关工作的小伙伴,具体的…

mysql访问60s出现timeout_websocket 每60s报WsHttpUpgradeHandler.timeoutAsync

在后台连接了一个websocket连接,每60s就报如下错误,有知道这是什么情况的吗?2020-09-10 14:22:40 [Catalina-utility-1] ERROR org.apache.coyote.http11.Http11NioProtocol -Error processing async timeoutsjava.util.concurrent.Execution…

java 类 方法继承_java – 在方法重写中返回继承的类而不是超类

我有一个看起来像这样的类结构:class Parent {public Parent(int property) { /* use property */}}class Son extends Parent {public Son(int parentProperty, String sonProperty) {super(parentProperty);/* use son property */}}我想为这两个类创建构建器,以便…

python环绕文字_如何用css实现文字三面环绕图片?

html部分:DIV with content or Image in the Middle of the text Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam rhoncus nibh ipsum, nec tincidunt mauris suscipit non. Nullam euismod est in dui vehicula ornare quis non nulla. Sed ul…

java写入数组_如何在Java中将数组写入outputStream

我想通过Socket发送多个随机值.我认为数组是发送它们的最佳方式.但是我不知道如何将数组写入Socket outputStream?import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.Socket;import java.io.*;import j…

java循环1000000000_求十亿内所有质数的和,怎么做最快?

注:对知乎的公式编辑功能实在无力吐槽,用typora写的文章直接粘过来公式无法显示,只好又手工加上了全部公式,不过可能还是会有遗漏。大家可以点击这个链接 查看我的博客原文。以下是正文:第一次关注到这个问题是在做pro…

java推送Comet_使用Comet4j实现消息推送

public class NewMsgCollector extends ConnectListener implements ServletContextListener {private static final String CHANNEL "hello";public void contextInitialized(ServletContextEvent contextEvent) {//注册应用的channelCometContext context CometC…

java飞行记录器是什么_运行java飞行记录器JFR(java flight recorder)

JFR上面讲到的工具都是作为快速的查看诊断工具的。如果要深入分析问题,可以选择使用内置的Java飞行记录器:Java Mission Control。转储JFR需要三步:1. 创建一个包含了你自己配置的JFR模板文件。运行jmc, 然后Window->Flight Recording Template Manag…

java申请安卓权限_java4android (包和访问权限)

什么是Java当中的软件包?为什么要使用软件包?如何给一个类打包?//将类放置到一个包中,需要使用package“包名”//打包 编译的方法 javac -d . Test.java//出现错误:编码GBK的不可映射字符 javac -encoding UTF-8 -d . …

java圆形泳池问题_Java实现 LeetCode 778 水位上升的泳池中游泳(二分+DFS)

778. 水位上升的泳池中游泳在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台&#xff0c…

python可以构建sem模型_python-分组的熊猫DataFrames:如何将scipy.stats.sem应用于它们?...

我知道我可以通过执行以下操作来应用numpy方法:dataList是DataFrames的列表(相同的列/行).testDF (concat(dataList, axis1, keysrange(len(dataList))).swaplevel(0, 1, axis1).sortlevel(axis1).groupby(level0, axis1))testDF.aggregate(numpy.mean)testDF.aggr…

java类中获取全局变量_java 通过反射获取类的全局变量、方法、构造方法

package com.str;public class ZiFuChuan {public static String ss "全局变量!!!!!!";String s2 null;public int aa 1 ;int aa2;double dou 1.1;Double d new Double(1.1);public static void main(String[] args) {}public ZiFuChuan(){}public ZiFuChuan(St…

java phantomjs 截图_phantomjs 截图

phantomjs 截图,多个setTimeout是为了让页面尽量加载完整/**截图test.js**/var page require(webpage).create();page.viewportSize { width: 1024, height: 600 };page.open(http://www.2345.com/, function(status) {var bb page.evaluate(function(){// window…

JAVA如何隐藏异常堆栈_java – 如何在控制台上停止打印异常堆栈跟踪?

这是我做的这样的战争作为工作。添加一个过滤器并劫持所有的请求和响应。检查异常并检查类型。/*** Hijacks all the http request and response here.* Catch the SocketException and do not print* If other exceptions print to console* date : 9-18-2013** author Suresh…

阿里最新php面试题及答案,面经网-阿里php面试题(四)

阿里php面试题(四)1.表单中 get与post提交方法的区别?答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息.2.session与cookie的区别?答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_…

php 条形码生成器,PHP条形码图像生成器

这是一个用于生成barocdes的简单PHP脚本://For displaying barcodes//Arguments are:// code Number you want outputted as a barcode//You can use this script in two ways:// From a webpage/PHP script // Directly in your web browser http://www.example.co…