我使用XMLSlurpr从XML响应中获取标记。他们加入了,实际看起来:
[0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF]
接下来我需要将其拆分为16个字符。我使用RegExp:
"(?<=\\G.{16})"
得到了
[0123456789ABCDEF, 0123456789ABCDEF, 0123456789ABCDEF]
如果我不分割字符串,我将在构建后使用下一个XML:
<EID>0</EID><EID>1</EID><EID>2</EID><EID>3</EID><EID>4</EID><EID>5</EID>
我需要将分割的字符串传递给XML Builder来构建XML。但groovy无法使用该字符串,我必须将带有撇号的分割字符串,如下所示:
['0123456789ABCDEF', '0123456789ABCDEF', '0123456789ABCDEF']
如何将所有0123456789ABCDEF
括在'
?
答案 0 :(得分:0)
它已经是:
def s = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF'
assert s.split( /(?<=\G.{16})/ ) == ['0123456789ABCDEF', '0123456789ABCDEF', '0123456789ABCDEF']
它必须是一个显示问题,它没有显示'
字符......你在运行什么?
以下内容:
import groovy.xml.*
def s = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF'
def ids = s.split( /(?<=\G.{16})/ )
println XmlUtil.serialize( new StreamingMarkupBuilder().bind {
root {
ids.each { id ->
EID( id )
}
}
} )
打印:
<?xml version="1.0" encoding="UTF-8"?><root>
<EID>0123456789ABCDEF</EID>
<EID>0123456789ABCDEF</EID>
<EID>0123456789ABCDEF</EID>
</root>