JAVA读取XML并打印
在G盘下新建XML文档:person.xml,XML代码:
- <?xml version="1.0" encoding="utf-8"?>
- <students>
- <student id="1">
- <name>a</name>
- <sex>男</sex>
- <age>18</age>
- </student>
- <student id="2">
- <name>b</name>
- <sex>女</sex>
- <age>16</age>
- </student>
- </students>
读取XML文件并打印,代码如下:
- package jichu;
- import java.io.StringWriter;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.transform.OutputKeys;
- import javax.xml.transform.Source;
- import javax.xml.transform.Transformer;
- import javax.xml.transform.TransformerFactory;
- import javax.xml.transform.dom.DOMSource;
- import javax.xml.transform.stream.StreamResult;
- import org.w3c.dom.Document;
- public class XmlPrinter {
- public static String xmlPrintFromFileName(String FileName) {
- String xml = "";
- try {
- DocumentBuilderFactory factory = DocumentBuilderFactory
- .newInstance();
- DocumentBuilder builder = factory.newDocumentBuilder();
- Document document = builder.parse(FileName);
- Source oldData = new DOMSource(document);
- StreamResult newData = new StreamResult(new StringWriter());
- Transformer transformer = TransformerFactory.newInstance()
- .newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty(
- "{http://xml.apache.org/xslt}indent-amount", "2");
- transformer.transform(oldData, newData);
- xml = newData.getWriter().toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return xml;
- }
- }
测试代码:
- package jichu;
- public class MainClass {
- public static void main(String[] args) {
- String xml = XmlPrinter.xmlPrintFromFileName("G:\\person.xml");
- System.out.println(xml);
- }
- }
打印:
- <?xml version="1.0" encoding="utf-8" standalone="no"?>
- <students>
- <student id="1">
- <name>a</name>
- <sex>男</sex>
- <age>18</age>
- </student>
- <student id="2">
- <name>b</name>
- <sex>女</sex>
- <age>16</age>
- </student>
- </students>
读取XML字符串,格式化后打印,代码如下:
- package jichu;
- import java.io.StringReader;
- import java.io.StringWriter;
- import javax.xml.transform.OutputKeys;
- import javax.xml.transform.Source;
- import javax.xml.transform.Transformer;
- import javax.xml.transform.TransformerFactory;
- import javax.xml.transform.stream.StreamResult;
- import javax.xml.transform.stream.StreamSource;
- public class XmlPrinter {
- public static String xmlPrintFromString(String xmlString) {
- String xml = "";
- try {
- StringReader reader = new StringReader(xmlString);
- Source oldData = new StreamSource(reader);
- StreamResult newData = new StreamResult(new StringWriter());
- Transformer transformer = TransformerFactory.newInstance()
- .newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty(
- "{http://xml.apache.org/xslt}indent-amount", "2");
- transformer.transform(oldData, newData);
- xml = newData.getWriter().toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return xml;
- }
- }
测试:
- package jichu;
- public class MainClass {
- public static void main(String[] args) {
- String xml = "<a><b></b><c/><d>text</d></a>";
- System.out.println(XmlPrinter.xmlPrintFromString(xml));
- }
- }
打印:
- <?xml version="1.0" encoding="UTF-8"?>
- <a>
- <b/>
- <c/>
- <d>text</d>
- </a>
JAVA读取XML并打印的更多相关文章
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
- Java读取xml数据
xml中的代码 <?xml version="1.0" encoding="UTF-8"?> <books id="aaa" ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- java读取 xml文件
java读取xml文件的四种方法 转自https://www.cnblogs.com/lingyao/p/5708929.html Xml代码 1 <?xml version="1. ...
- JAVA读取XML文件数据
XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...
- Java读取xml
首先将xml的格式展示出来,如下 <?xml version="1.0"?> <configuration> <connectionStrings n ...
- java读取XML文件,及封装XML字符串
package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...
随机推荐
- fatal: unable to auto-detect email address (got 'CC@LAPTOP-UPQ1N1VQ.(none)')
git 提交问题出现小解决: 在输入 git commit -m "输入的是对这个版本的描述信息" 然后报错:fatal: unable to auto-detect email ...
- Django-model更上层楼
一 QuerySet对象 1.1可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET子句. Entry.objects.all()[:5] # ( ...
- node-red File读取好保存
File节点是操作文件的节点 file文件的保存 拖拽 注入节点inject file节点(writes msg.payload to a file)和 debug节点到工作区,并连线 设置file ...
- node-red 流程的导入导出
流程的导入导出 流程的导出 选中所要导出的流程,点击右上角三条杠按钮 有两个选项,导出到剪贴板和库 1. 导出到剪贴板 导出到剪贴板可以复制,粘贴到任何地方 [{,,,,,,"wires&q ...
- lombok使用教程
Lombok介绍.使用方法和总结https://www.cnblogs.com/heyonggang/p/8638374.html Lombok简介.使用.工作原理.优缺点https://www.ji ...
- Redis之RDB和AOF持久化介绍
什么是数据库状态 redis是一个键值对的数据库服务器,服务器中通常包含中任意个非空的数据库,而每个数据库又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及他们的键值对统称为数据库状 ...
- 使用jQuery开发accordion手风琴插件
一.插件效果 手风琴插件常用的功能均已实现,包括:手风琴菜单项的折叠展开效果.选中指定菜单项.判断菜单项是否选中等. 效果如下: 二.插件内部HTML元素结构 <!-- accordioon组件 ...
- RabbitMQ实战-死信队列
RabbitMQ死信队列 场景说明 代码实现 简单的Util 生产者 消费者 场景说明 场景: 当队列的消息未正常被消费时,如何解决? 消息被拒绝并且不再重新投递 消息超过有效期 队列超载 方案: 未 ...
- 作为消费者访问提供者提供的功能(eureka的铺垫案例)
1. 实体类.提供者的创建如本随笔者的Euraka适合初学者的简单小demo中有所展示 2. 创建子工程作为消费者 (1) 添加依赖:切记引入实体类的依赖 <dependencies> & ...
- stack + positioned
stack 下套container, 发现最大的显示,小的都没显示, 把所有都套个POSITIONED, 都正常显示了.