2

我正在尝试通过 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 节点。

4

1 回答 1

3

鉴于您当前拥有的 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>

(我自己添加了换行符以使其更易于阅读......你得到的实际字符串都在一行上)

于 2012-06-20T08:39:17.497 回答