0

一部のタグに Java および groovy コードを含む xml ファイルがあり、コードをフォーマットする必要があります。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