在Groovy中将字符串XML片段转换为文档节点

在Groovy中将字符串XML片段转换为文档节点,groovy,soapui,xmlnode,Groovy,Soapui,Xmlnode,我正在尝试通过SOAPUI Groovy向请求添加一个新节点 我有字符串XMl片段,但无法使用Groovy for SOAPUI创建节点 比如说 <entityProps> <candidate> <id>1</id><key></key> </candidate> <candidate> <id>2</id><key></key> </c

我正在尝试通过SOAPUI Groovy向请求添加一个新节点 我有字符串XMl片段,但无法使用Groovy for SOAPUI创建节点

比如说

<entityProps>
  <candidate> <id>1</id><key></key> </candidate>
  <candidate> <id>2</id><key></key> </candidate>
  <candidate> <id>3</id><key></key> </candidate>
  <candidate> <id>4</id><key></key> </candidate>
</entityProps>

1.
2.
3.
4.
我想向该请求添加新的
节点。
我已经有了字符串,但我需要将其转换为文档节点。

鉴于您当前拥有的xml:

String doc = '''<entityProps>
               |  <candidate> <id>1</id><key></key> </candidate>
               |  <candidate> <id>2</id><key></key> </candidate>
               |  <candidate> <id>3</id><key></key> </candidate>
               |  <candidate> <id>4</id><key></key> </candidate>
               |</entityProps>'''.stripMargin()
片段:

def fragxml = new XmlSlurper().parseText( frag )
然后,将片段附加到文档的根节点:

def xml = new XmlSlurper().parseText( doc )
xml.appendNode( fragxml )
并将此文档流回字符串:

String newDoc = new groovy.xml.StreamingMarkupBuilder().bind { mkp.yield xml }
println newDoc
上面印着:

<entityProps>
  <candidate><id>1</id><key></key></candidate>
  <candidate><id>2</id><key></key></candidate>
  <candidate><id>3</id><key></key></candidate>
  <candidate><id>4</id><key></key></candidate>
  <candidate><id>5</id><key></key></candidate>
</entityProps>

1.
2.
3.
4.
5.
(我自己添加了换行符,以便于阅读……您得到的实际字符串都在一行中)

<entityProps>
  <candidate><id>1</id><key></key></candidate>
  <candidate><id>2</id><key></key></candidate>
  <candidate><id>3</id><key></key></candidate>
  <candidate><id>4</id><key></key></candidate>
  <candidate><id>5</id><key></key></candidate>
</entityProps>