0

我有一个 xml 文件,其中一些标签中包含 Java 和 groovy 代码,我需要格式化代码,我能够格式化 xml,但不能格式化 xml 标签内的 java 和 groovy 代码。

例如:输入:

<?xml version="1.0" encoding="UTF-8"?>
<config  xmlns="http://web-harvest.sourceforge.net/schema/1.0/config" charset="UTF-8" scriptlang="groovy">

<script><![CDATA[

		class Room{
			public int  length=""; public List<String> comments = new ArrayList<>();static void main(String[] args){}
		}
		
	]]></script>
	<export include-original-data="true">
		
	</export>
</config>

我需要这个作为输出(格式正确):

<?xml version="1.0" encoding="UTF-8"?>
<config  xmlns="http://web-harvest.sourceforge.net/schema/1.0/config" charset="UTF-8" scriptlang="groovy">
	<script><![CDATA[
		class Room{
		          public int  length=""; 
			  public List<String> comments = new ArrayList<>();
			  static void main(String[] args){}
		]]>
	</script>
	<export include-original-data="true">
	</export>
</config>

我可以获取 xml 标签的内部文本并且可以格式化,但是我需要在不获取内部文本的情况下进行格式化

我将此代码用于 xml 格式

DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document doc = db.parse(new InputSource(new StringReader(xml)));

    OutputFormat format = new OutputFormat(doc);
    format.setIndenting(true);
    format.setIndent(4);
    format.setOmitXMLDeclaration(ommitXmlDeclaration);
    format.setLineWidth(Integer.MAX_VALUE);
    Writer outxml = new StringWriter();
    XMLSerializer serializer = new XMLSerializer(outxml, format);
    serializer.serialize(doc);
4

0 回答 0