Разбор Groovy и Java-кода, встроенный в тег XML
У меня есть xml-файл, в котором есть теги Java и groovy в некоторых тегах, и мне нужно отформатировать код, я могу форматировать xml, но не код java и groovy внутри тегов xml.
Пример: вход:
<?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);