在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并打印的更多相关文章

  1. java 读取XML文件作为配置文件

    首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...

  2. Java读取xml数据

    xml中的代码 <?xml version="1.0" encoding="UTF-8"?> <books id="aaa" ...

  3. java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .

    背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...

  4. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  5. JAVA读取XML文件并解析获取元素、属性值、子元素信息

    JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取  InputStream   DocumentBuilderFactory   Element     Node 前言 最 ...

  6. java读取 xml文件

    java读取xml文件的四种方法  转自https://www.cnblogs.com/lingyao/p/5708929.html Xml代码 1 <?xml version="1. ...

  7. JAVA读取XML文件数据

    XML文档内容如下: <?xml version="1.0" encoding="UTF-8"?> <root> <field t ...

  8. Java读取xml

    首先将xml的格式展示出来,如下 <?xml version="1.0"?> <configuration> <connectionStrings n ...

  9. java读取XML文件,及封装XML字符串

    package com.yyl.text; import java.io.FileInputStream; import java.util.ArrayList; import org.junit.T ...

随机推荐

  1. linux系统状态脚本

    #!/bin/bashprintf "%10s\n" "##主机名##"printf "%-10s\n" "$(hostname) ...

  2. VC6.0- C语言-winsocket-警告warning C4761

    错误介绍 操作系统:windows10 IDE:VC6.0 语言:C语言 项目内容简介:编写一个双人网络海战棋对战游戏 警告类型:警告warning C4761 integral size misma ...

  3. Django总结篇

    1.0 简述http协议和常用请求头 http协议: ( 基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)) HTTP协议是Hyper Text Transfer Pro ...

  4. gorm - postgresql 如何连接?

    上面是mysql

  5. gorm 处理时间戳

    问题 在使用 gorm 的过程中, 处理时间戳字段时遇到问题.写时间戳到数据库时无法写入. 通过查阅资料最终问题得以解决,特此总结 设置数据库的 dsn parseTime = "True& ...

  6. L2R 二:常用评价指标之AUC

    零零散散写了一些,主要是占个坑: AUC作为一个常用的评价指标,无论是作为最后模型效果评价还是前期的特征选择,都发挥着不可替代的作用,下面我们详细介绍下这个指标. 1.定义 2.实现 # coding ...

  7. mysql_新建表:主键、外键等

    序号 命令(中文) 命令(英文呢) 解释 示例 备注 1 主键约束 primary key 不能重复,不能为空 学号 2 外键约束 foreign key 可以重复,依赖主键 学号 3 非空约束 no ...

  8. harbor helm仓库使用

    harbor helm仓库使用 官方文档地址:https://github.com/goharbor/harbor Monocular 从1.0 开始专注于helm 的UI展示,对于部署以及维护已经去 ...

  9. 深度学习 Bottleneck layer / Bottleneck feature

    最近在学习deeplearning的时候接触到了bottle-neck layer,好奇它的作用于是便扒了一些论文(论文链接放在文末吧),系统的了解一下bottle-neck feature究竟有什么 ...

  10. 可分离滤波器设计高斯滤波 CUDA程序优化, 实验记录

    环境:RTX2060 ,1920X1080p ,循环10次, kernal_size=8 一 .测试前128个线程拷贝到dst数据的性能  ,只测试行卷积, block=(128+2r)X1 1. 使 ...