我正在尝试通过SOAPUI Groovy向请求添加新节点 我有String 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>
我想在此请求中添加新的<candidate></candidate>
个节点。
我已经有了字符串,但我需要将其转换为Document节点。
答案 0 :(得分:2)
鉴于您目前拥有的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()
片段字符串:
String frag = '<candidate> <id>5</id><key></key> </candidate>'
您可以解析文档:
def xml = new XmlSlurper().parseText( doc )
片段:
def fragxml = new XmlSlurper().parseText( frag )
然后,将片段附加到文档的根节点:
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>
(我自己添加了新行,以便更容易阅读...你得到的实际字符串都在一行上)