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 にストリーミングします。

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行です)

于 2012-06-20T08:39:17.497 に答える