【XML】Java创建XML文档
package example01;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
public class doit {
public static void main(String[] args) {
Document doc = createDocument();
Element root = doc.createElement("students");
doc.appendChild(root);
addStudentInfo(doc,root,"王宏","20100101","96","88","90");
addStudentInfo(doc,root,"李娜","20100102","75","56","70");
addStudentInfo(doc,root,"孙武","20100103","77","70","20");
outputXMLFile(doc,"student.xml");
}
/* 通过DOM解析器创建一个空的Document对象 */
public static Document createDocument() {
// 通过newInstance方法创建DocumentBuilderFactory对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = null;
try {
// 创建解析器对象
DocumentBuilder db = dbf.newDocumentBuilder();
// 创建一个空的Document对象
doc = db.newDocument();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
return doc;
}
public static void addStudentInfo(Document doc,Element root,String studentName,String studentId,String javaContent,String OracleContent,String umlContent){
Element student = doc.createElement("student");
student.setAttribute("id",studentId);
root.appendChild(student);
Element name = doc.createElement("name");
name.setTextContent(studentName);
student.appendChild(name);
Element java = doc.createElement("java");
java.setTextContent(javaContent);
student.appendChild(java);
Element oracle = doc.createElement("oracle");
oracle.setTextContent(OracleContent);
student.appendChild(oracle);
Element uml = doc.createElement("uml");
uml.setTextContent(umlContent);
student.appendChild(uml);
}
/* 将内存中的DOM树输出为一个xml文档 */
public static void outputXMLFile(Document doc,String filename) {
try {
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
//设置输出XML文件的换行
tf.setOutputProperty(OutputKeys.INDENT, "yes");
//设置输出XML文件的缩进
tf.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
//把DOM对象转换为XML对象
DOMSource source = new DOMSource(doc);
//创建一个输出XML文件对象
//StreamResult result = new StreamResult(new File(filename));
StreamResult result = new StreamResult(new PrintStream(new FileOutputStream(filename),true, StandardCharsets.UTF_8));
//把XML源代码输出为XML文件
tf.transform(source, result);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
关于编码问题
保存的XML是UTF-8格式
整个java项目也是UTF-8格式
我在写的过程中遇到了保存出来的XML文件有中文乱码的问题。
事情是这样的,老师发的Java文件是Eclipse写的,我用的Idea打开,然后打开中文乱码
于是我就把Java文件项目编码调成了GBK,结果写出来的文件就中文乱码了。
所以我在输出文件的函数那,把StreamResult result = new StreamResult(new File(filename));改成了StreamResult result = new StreamResult(new PrintStream(new FileOutputStream(filename),true, StandardCharsets.UTF_8));
你可以试一试这样,但是我这样并没有生效。
萌狼蓝天的解决方法是:
把项目编码,Java文件编码都设置成UTF-8,清除缓存重新启动即可。
萌狼-图1-修改项目编码

萌狼-图2-清除缓存

【XML】Java创建XML文档的更多相关文章
- [java,2017-05-04] 创建word文档
package test; import java.text.SimpleDateFormat; import java.util.Date; import com.aspose.words.Data ...
- java对word文档的操作(提取标题和内容等)-直接操作或poi工具包或freemarker+xml或html转word
1,java自带工具包实现对word的排版和写入 import java.awt.Color; import java.io.FileNotFoundException; import java.io ...
- Java 操纵XML之创建XML文件
Java 操纵XML之创建XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...
- poi 读取使用 Strict Open XML 保存的 excel 文档
poi 读取使用 Strict Open XML 保存的 excel 文档 某项目有一个功能需要读取 excel 报表内容,使用poi读取时报错: 具体错误为: org.apache.poi.POIX ...
- xml和xsd架构文档相关知识
1.使用架构(XSD)验证XML文件 2.使用自动生成工具: 工具目录:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4. ...
- Java 后台创建word 文档
---恢复内容开始--- Java 后台创建 word 文档 自己总结 网上查阅的文档 分享POI 教程地址:http://www.tuicool.com/articles/emqaEf6 方式一. ...
- java将office文档pdf文档转换成swf文件在线预览
第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...
- 使用Docx4j创建word文档
原文标题:Creating Word documents with Docx4j 原文链接:http://blog.iprofs.nl/2012/09/06/creating-word-documen ...
- Java版office文档在线预览
java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux ...
- 使用Java生成word文档(附源码)
当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...
随机推荐
- 对于python中GIL的一些理解与代码实现
近期看了一些关于GIL的一些内容,敲一下代码看看效果. # coding:utf-8 # GIL(Global Interpreter Lock):他只允许任何时刻只有一个线程处于执行状态,即使是在具 ...
- 2021年11月数据库排行解读:openGauss跃居第三,人大金仓晋身前十
2021年11月墨天轮国产数据库流行度排行榜出炉,本月前三的数据库产品分别是:TiDB.达梦.openGauss,openGauss 数据库是首次跻身前三强. TiDB 自2020年以来,持续稳居榜首 ...
- 现在 Llama 具备视觉能力并可以在你的设备上运行 - 欢迎使用 Llama 3.2
Llama 3.2 来了!今天,我们欢迎 Llama 系列的下一个版本加入 Hugging Face.这次,我们很高兴与 Meta 合作发布多模态和小型模型.在 Hub 上提供了十个开源模型 (5 个 ...
- 云原生周刊:Helm Charts 深入探究 | 2024.3.11
开源项目推荐 Glasskube Glasskube 提供了一个用于 Kubernetes 的缺失的包管理器.它具有图形用户界面(GUI)和命令行界面(CLI).Glasskube 包是具备依赖感知. ...
- ToDesk云电脑游戏数量?高性能显卡云桌面
玩游戏最怕遇到电脑配置跟不上,操作卡成狗不说,画面还一卡卡的,游戏体验极差. 最近被人安利了ToDesk的云电脑,可能是刚推出的,配置价格都很能打,浅用了一波拿来打APEX和荒野大镖客,体验有点惊喜到 ...
- 『玩转Streamlit』--页面布局
一个优秀的数据应用不仅仅是功能的强大,更在于其用户体验的打造. 而良好的页面布局,作为用户体验的重要组成部分,不仅能够提升信息的可读性,还能引导用户高效地完成操作. 反之,混乱的布局会让人感到困惑和挫 ...
- swiper + ts 类型报错
swiper + ts 类型报错 "swiper": "^9.4.1" 版本号 原因 修改 tsconfig.json 文件下面的 moduleResoluti ...
- Redis的ZSet底层数据结构,ZSet类型全面解析
文章目录 一.ZSet有序集合类型 1.1 简介 1.2 应用场景 1.3 底层结构 1.4 ZSet常用命令 二.ZSet底层结构详解 2.1 数据结构 2.2 压缩列表ZipList 2.3 跳表 ...
- C++面经(持续更新)
一. c,c++区别<九大点> c: 面向过程 c++: 面向对象(封装,继承,多态) 对象:对数据和作用于数据的操作组成的封装实体 类:描叙了一组有相同属性和方法的对象<虚拟> ...
- 3-2 C++ string类型
目录 3.2.1 定义和初始化 3.2.2 对string的操作 (一)重要操作一览 (二)读写操作 cin/cout getline : 可读取整行 (三)获取大小 .size() (四)比较.赋值 ...