base 64 使用 Groovy 脚本解码 XML 值

base 64 Decode XML values using Groovy script

我将在变量中接收以下 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 解码此数据以便获得如图所示的输出的最佳方法是什么?

始终:标记值将被编码。其余所有标签和值都将被解码。

由于不确定哪些节点可以编码哪些节点不编码,因此无需检测 base64 编码,方法非常简单:

  1. 解析它。 Groovy 中有两种更好的方法:XmlSlurper 和 XmlParser。它们在计算和内存消耗模式上有所不同,但最终都提供 object/structure 表示。
  2. 使用该对象结构:遍历所有必需的元素,解码您需要解码的content/attributes。
  3. 或者进一步处理数据 and/or 将其序列化回 XML 文本。

要查看的文章:

Load, modify, and write an XML document in Groovy

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

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

还有很多很多。

另一个作弊 sheet 对 Groovy 菜鸟总是有用的:http://groovy-lang.org/groovy-dev-kit.html

例如,查看如何遍历那里的结构。