xml格式化工具类

package cn.com.paic.utils;

import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;

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

/**
 * User: ldj
 * Date: 2021/11/14
 * Time: 23:19
 * Description: xml文件格式化工具
 */
public class XmlUtil {
    public static String formatXML(String unformattedXml) {
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            InputSource is = new InputSource(new StringReader(unformattedXml));
            final Document document = db.parse(is);
            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 (Exception e) {
            throw new RuntimeException(e);
        }
    }


    public static String formatStringAsXml(String strXML) throws Exception {
      try { 
          Document document = null;
          document = DocumentHelper.parseText(strXML);
           // 格式化输出格式
          OutputFormat format = OutputFormat.createPrettyPrint();
          format.setEncoding(String.valueOf(StandardCharsets.UTF_8));
          StringWriter writer = new StringWriter();
          // 格式化输出流
          XMLWriter xmlWriter = new XMLWriter(writer, format);
          // 将document写入到输出流
          xmlWriter.write(document);
          xmlWriter.close();
          return writer.toString();
       } catch (Exception e) {
            throw new RuntimeException(e);
       }
    }


    public static void main(String[] args) {
        //将要发送的消息
        String xml = "<?xml version=\"1.0\" encoding=\"GB2312\"?>" +
                " <softCompany>" +
                "     <company>MicroSoft</company>" +
                "     <company>google</company>" +
                "     <company>Apple</company>" +
                "     <company>百度</company>" +
                " </softCompany>";

        //将xml文件格式
        String fxml = XmlUtil.formatXML(xml);
        System.out.println(fxml);
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值