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>


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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux详解sudoers

    linux详解sudoers文章目录sudo使用sudo命令执行过程赋予用户sudo操作的权限/etc/sudoers内容详解编辑/etc/sudoers命令作用域通配符以及取消命令输入密码时有反馈修改sudo会话时间实践sudoers文件详解sudo使用Linux是多用户多任务的操作系统,共享该系统的用户往往不只一个。出于安全性考虑,有必要通过useradd创建一些非root用户,只让它们拥有不完全的权限;如有…

    2022年6月20日
    37
  • oracle 协议适配器错误,无法登陆

    oracle 协议适配器错误,无法登陆问题:   之前装好了oracleXE(快捷版),然后关闭此版本所有服务,再装上了oracle11g正式版,使用正式版正常。   关闭正式版的所有服务,打开xe版服务后,从sqlplus登陆,提示oracle 协议适配器错误,无法登陆。    解决:  进入sqlplus前,在commandline下输setoracle_sid=XXXX

    2022年6月22日
    26
  • matlab 计算变异系数,变异系数法求权重matlab 代码[通俗易懂]

    matlab 计算变异系数,变异系数法求权重matlab 代码[通俗易懂]利用matlab编程,很容易根据变异系数法,求得多指标综合评价模型的权重。代码如果有不懂的地方,可以联系我。变异系数法求权重matlab代码clear;clc;[data1,header1]=xlsread(‘statistic1.xlsx’,’ECO’);%必须将statistic.xlsx至于默认文件下,或者给出完整路径[data2,header2]=xlsread(‘stati…

    2022年6月11日
    56
  • 基于单片机的八路抢答器的设计与实现_基于单片机的三路抢答器设计

    基于单片机的八路抢答器的设计与实现_基于单片机的三路抢答器设计1.设计要求:1.以单片机为核心,设计一个八位竞赛抢答器:同时供八名选手或八个代表队比赛,分别用八个按钮S0~S7表示。2.设置一个系统清除和抢答控制开关S,开关由主持人控制。3.抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。4.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。5.当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。6.参赛选手在设定的时间

    2022年10月9日
    0
  • 一个低级的ORA-01017错误

    一个低级的ORA-01017错误事件缘由:使用sys账户创建了一个数据清理的存储过程,再创建一个Oraclejob定时运行这个存储过程,用于做表数据的清理。第二天看表数据未删除,说明job执行有错,打算使用sys账号登录查看job运行情况,反复输入sys账户信息,总提示ORA-01017,1.尝试改sys用户密码,重试报错依旧。2.使用sys登录GC,报错相同。使用普通用户登录正常。3.数据库服务器上使用sq

    2022年6月1日
    27
  • [gdc15]<暗黑破坏神3>中的合作模式设计

    [gdc15]<暗黑破坏神3>中的合作模式设计本文中,kevin老师分享暗黑设计团队从游戏的早期一直到现在夺魂之镰资料片,一路过来的探索,纠结和沉淀。最后能逐渐把设计做的更好(有的地方大幅度的简化,不纠结,有些地方则有所增强),kevin老师建立在对于D3本质的认知上,产生了一系列的哲学和原则。

    2022年6月2日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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