base 64 Декодировать значения XML с помощью скрипта Groovy - PullRequest
0 голосов
/ 08 ноября 2019

Я получу следующие данные XML в переменной.

<order>
   <name>xyz</name>
   <city>abc</city>
   <string>aGVsbG8gd29ybGQgMQ==</string>
   <string>aGVsbG8gd29ybGQgMg==</string>
   <string>aGVsbG8gd29ybGQgMw==</string>
 </order>

Вывод:

 <order>
       <name>xyz</name>
        <city>abc</city>
       <string>hello world 1</string>
       <string>hello world 2</string>
       <string>hello world 3</string>
 </order>

Я знаю, как можно декодировать из base64, но проблема в том, что некоторые значения уже декодированы, а некоторые закодированы. Каков наилучший подход для декодирования этих данных с использованием groovy, чтобы получить вывод, как показано?

Always: значение тега будет закодировано. остальные все теги и значение будут декодированы.

1 Ответ

0 голосов
/ 08 ноября 2019

Поскольку нет никакой неопределенности относительно того, какие узлы могут быть закодированы, а какие нет, следовательно, нет необходимости обнаруживать кодировку base64, способ сделать это довольно прост:

  1. Синтаксический анализ. В Groovy есть два предпочтительных способа сделать это: XmlSlurper и XmlParser. Они различаются по режимам вычислений и потребления памяти, однако оба обеспечивают представление объекта / структуры в конце.
  2. Работа с этой структурой объекта: переберите все необходимые элементы, декодируйте контент / атрибуты, которые вам нужно декодировать.
  3. Либо продолжайте работу с данными вместе с ними и / или сериализуйте их обратно в текст XML.

Статьи для просмотра:

Загрузка, изменение,и написать XML-документ на Groovy

https://www.baeldung.com/groovy-xml

https://groovy -lang.org / processing-xml.html

и многое другоенапример, как пройти через структуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...