前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java String转成XML

Java String转成XML

作者头像
用户7886150
修改2021-04-26 17:42:39
1.8K0
修改2021-04-26 17:42:39
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java StringReader类

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 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) {

        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>";

        System.out.println(new XmlFormatter().format(s));

    }

直接运行main方法,可以看到打印出来格式化之后的xml文件。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档