在G盘下新建XML文档:person.xml,XML代码:

  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <students>
  4. <student id="1">
  5. <name>a</name>
  6. <sex></sex>
  7. <age>18</age>
  8. </student>
  9. <student id="2">
  10. <name>b</name>
  11. <sex></sex>
  12. <age>16</age>
  13. </student>
  14. </students>

读取XML文件并打印,代码如下:

  1. package jichu;
  2.  
  3. import java.io.StringWriter;
  4. import javax.xml.parsers.DocumentBuilder;
  5. import javax.xml.parsers.DocumentBuilderFactory;
  6. import javax.xml.transform.OutputKeys;
  7. import javax.xml.transform.Source;
  8. import javax.xml.transform.Transformer;
  9. import javax.xml.transform.TransformerFactory;
  10. import javax.xml.transform.dom.DOMSource;
  11. import javax.xml.transform.stream.StreamResult;
  12. import org.w3c.dom.Document;
  13.  
  14. public class XmlPrinter {
  15. public static String xmlPrintFromFileName(String FileName) {
  16. String xml = "";
  17. try {
  18. DocumentBuilderFactory factory = DocumentBuilderFactory
  19. .newInstance();
  20. DocumentBuilder builder = factory.newDocumentBuilder();
  21. Document document = builder.parse(FileName);
  22. Source oldData = new DOMSource(document);
  23. StreamResult newData = new StreamResult(new StringWriter());
  24. Transformer transformer = TransformerFactory.newInstance()
  25. .newTransformer();
  26. transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  27. transformer.setOutputProperty(
  28. "{http://xml.apache.org/xslt}indent-amount", "2");
  29. transformer.transform(oldData, newData);
  30. xml = newData.getWriter().toString();
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. return xml;
  35. }
  36. }

测试代码:

  1. package jichu;
  2.  
  3. public class MainClass {
  4. public static void main(String[] args) {
  5. String xml = XmlPrinter.xmlPrintFromFileName("G:\\person.xml");
  6. System.out.println(xml);
  7. }
  8. }

打印:

  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <students>
  3. <student id="1">
  4. <name>a</name>
  5. <sex></sex>
  6. <age>18</age>
  7. </student>
  8. <student id="2">
  9. <name>b</name>
  10. <sex></sex>
  11. <age>16</age>
  12. </student>
  13. </students>

读取XML字符串,格式化后打印,代码如下:

  1. package jichu;
  2.  
  3. import java.io.StringReader;
  4. import java.io.StringWriter;
  5. import javax.xml.transform.OutputKeys;
  6. import javax.xml.transform.Source;
  7. import javax.xml.transform.Transformer;
  8. import javax.xml.transform.TransformerFactory;
  9. import javax.xml.transform.stream.StreamResult;
  10. import javax.xml.transform.stream.StreamSource;
  11.  
  12. public class XmlPrinter {
  13. public static String xmlPrintFromString(String xmlString) {
  14. String xml = "";
  15. try {
  16. StringReader reader = new StringReader(xmlString);
  17. Source oldData = new StreamSource(reader);
  18. StreamResult newData = new StreamResult(new StringWriter());
  19. Transformer transformer = TransformerFactory.newInstance()
  20. .newTransformer();
  21. transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  22. transformer.setOutputProperty(
  23. "{http://xml.apache.org/xslt}indent-amount", "2");
  24. transformer.transform(oldData, newData);
  25. xml = newData.getWriter().toString();
  26. } catch (Exception e) {
  27. e.printStackTrace();
  28. }
  29. return xml;
  30. }
  31. }

测试:

  1. package jichu;
  2.  
  3. public class MainClass {
  4. public static void main(String[] args) {
  5. String xml = "<a><b></b><c/><d>text</d></a>";
  6. System.out.println(XmlPrinter.xmlPrintFromString(xml));
  7. }
  8. }

打印:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <a>
  3. <b/>
  4. <c/>
  5. <d>text</d>
  6. </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. fatal: unable to auto-detect email address (got 'CC@LAPTOP-UPQ1N1VQ.(none)')

    git 提交问题出现小解决: 在输入 git commit -m "输入的是对这个版本的描述信息" 然后报错:fatal: unable to auto-detect email ...

  2. Django-model更上层楼

    一 QuerySet对象 1.1可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET子句. Entry.objects.all()[:5] # ( ...

  3. node-red File读取好保存

    File节点是操作文件的节点 file文件的保存 拖拽 注入节点inject  file节点(writes msg.payload to a file)和 debug节点到工作区,并连线 设置file ...

  4. node-red 流程的导入导出

    流程的导入导出 流程的导出 选中所要导出的流程,点击右上角三条杠按钮 有两个选项,导出到剪贴板和库 1. 导出到剪贴板 导出到剪贴板可以复制,粘贴到任何地方 [{,,,,,,"wires&q ...

  5. lombok使用教程

    Lombok介绍.使用方法和总结https://www.cnblogs.com/heyonggang/p/8638374.html Lombok简介.使用.工作原理.优缺点https://www.ji ...

  6. Redis之RDB和AOF持久化介绍

    什么是数据库状态 redis是一个键值对的数据库服务器,服务器中通常包含中任意个非空的数据库,而每个数据库又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及他们的键值对统称为数据库状 ...

  7. 使用jQuery开发accordion手风琴插件

    一.插件效果 手风琴插件常用的功能均已实现,包括:手风琴菜单项的折叠展开效果.选中指定菜单项.判断菜单项是否选中等. 效果如下: 二.插件内部HTML元素结构 <!-- accordioon组件 ...

  8. RabbitMQ实战-死信队列

    RabbitMQ死信队列 场景说明 代码实现 简单的Util 生产者 消费者 场景说明 场景: 当队列的消息未正常被消费时,如何解决? 消息被拒绝并且不再重新投递 消息超过有效期 队列超载 方案: 未 ...

  9. 作为消费者访问提供者提供的功能(eureka的铺垫案例)

    1. 实体类.提供者的创建如本随笔者的Euraka适合初学者的简单小demo中有所展示 2. 创建子工程作为消费者 (1) 添加依赖:切记引入实体类的依赖 <dependencies> & ...

  10. stack + positioned

    stack 下套container, 发现最大的显示,小的都没显示, 把所有都套个POSITIONED, 都正常显示了.