XML格式化工具类(java)

XML格式化工具类(java)下面是完整的代码importorg.apache.catalina.tribes.membership.StaticMember;importorg.apache.xml.serialize.OutputFormat;importorg.apache.xml.serialize.OutputFormat;importorg.apache.xml.serialize.XMLSeria…

大家好,又见面了,我是你们的朋友全栈君。

下面是完整的代码

import org.apache.catalina.tribes.membership.StaticMember;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;

public class XmlFormatter {
    public  String format(String unformattedXml) {
        try {
            final Document document = parseXmlFile(unformattedXml);
            OutputFormat format = new OutputFormat(document);
            format.setLineWidth(65);
            format.setIndenting(true);
            format.setIndent(2);
            Writer out = new StringWriter();
            XMLSerializer serializer = new XMLSerializer(out, format);
            serializer.serialize(document);
            return out.toString();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    private Document parseXmlFile(String in) {
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            InputSource is = new InputSource(new StringReader(in));
            return db.parse(is);
        } catch (ParserConfigurationException e) {
            throw new RuntimeException(e);
        } catch (SAXException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    public static void main(String[] args) throws Exception{
        String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><PARAM><DBID>35</DBID><SEQUENCE>atgtca</SEQUENCE><MAXNS>10</MAXNS><MINIDENTITIES>90</MINIDENTITIES><MAXEVALUE>10</MAXEVALUE><USERNAME>admin</USERNAME><PASSWORD>111111</PASSWORD><TYPE>P</TYPE><RETURN_TYPE>2</RETURN_TYPE></PARAM>";//未格式化前的xml
        System.out.println(new XmlFormatter().format(s));
        
    }
}

输出结果是:

<?xml version="1.0" encoding="UTF-8"?>
<PARAM>
  <DBID>35</DBID>
  <SEQUENCE>atgtca</SEQUENCE>
  <MAXNS>10</MAXNS>
  <MINIDENTITIES>90</MINIDENTITIES>
  <MAXEVALUE>10</MAXEVALUE>
  <USERNAME>admin</USERNAME>
  <PASSWORD>111111</PASSWORD>
  <TYPE>P</TYPE>
  <RETURN_TYPE>2</RETURN_TYPE>
</PARAM>


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160163.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • git查看用户名和修改用户名「建议收藏」

    git查看用户名和修改用户名「建议收藏」在和同事共同完成一个项目时,上传代码,用户名就得注意下,不然搞个昵称,都不知道是谁上传的简单写下查看用户名和邮箱地址:$gitconfiguser.name$gitconfiguser.email修改用户名和邮箱地址$gitconfig–globaluser.name”xxxx”Sgitconfig–globaluser.emai…

  • SQL新手学习

    SQL新手学习1.什么是SQLSQL(英文全称:StructuredQueryLanguage)是结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据。三个关键点:①    SQL是一门数据库编程语言②    使用SQL语言编写出来的代码,叫做SQL语句③    SQL语言只能在关系型数据库中使用(例如MySQL、Oracle

  • vs2012 webservice 实例

    vs2012 webservice 实例1.把安装好的VS打开

  • c++读取文本文件

    c++读取文本文件

  • candence的图纸大小设置_标准制图图纸尺寸大小

    candence的图纸大小设置_标准制图图纸尺寸大小标准制图图纸尺寸大小[b]图纸尺寸大小[/b]A0:1189毫米*841毫米A1:841毫米*594毫米A2:594毫米*420毫米A3:420毫米*297毫米A4:297毫米*210毫米A5:210毫米*148毫米纸张幅面规格纸张的规格是指纸张制成后,经过修整切边,裁成一定的尺寸。过去是以多少”开”(例如8开或16开等)来表示纸张的大小,现在我采用国际标准,规定以A0、A1、A2、B1、B2…..

  • 用Pytest+Allure生成漂亮的HTML图形化测试报告[通俗易懂]

    用Pytest+Allure生成漂亮的HTML图形化测试报告[通俗易懂]对于软件测试来说,测试报告是非常重要的工作产出。一个漂亮、清晰、格式规范的测试报告,能够减少开发人员和测试人员的沟通成本。本篇文章将介绍如何使用开源的测试报告生成框架Allure生成规范、格式统一、美观的测试报告。通过这篇文章的介绍,你将能够:-将Allure与Pytest测试框架相结合;-执行测试之后,生成Allure格式的测试报告。1、Allure测…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号