Разбор 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);

0 ответов

Другие вопросы по тегам