0

私は次の XML を持っています。SOAPUI Groovy では、タグと値を含む一連の XML を取得しようとしています。たとえば、次のようになります。

<telephoneNumbers>
    <telephone>
        <id>125042741</id>
        <areaCode>0161</areaCode>
        <phoneNumber>4804420</phoneNumber>
        <extension>1234</extension>
        <usage>Work</usage>
    </telephone>
</telephoneNumbers>

次の結果(タグと値)に戻ろうとしています:

<telephone>
    <id>125042741</id>
    <areaCode>0161</areaCode>
    <phoneNumber>4804420</phoneNumber>
    <extension>1234</extension>
    <usage>Work</usage>
</telephone>

これがグルーヴィーです:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )  
def Recall = groovyUtils.getXmlHolder( "Recall#Response" ) 

def telephone = Recall[ "//telephone//*" ] as String
String returnXml = ""

if ( Recall["//restrict"] !=  null ) {
    returnXml= telephone
}
else 
    return returnXml
4

1 に答える 1

0

この回答と同様に、名前空間が保持されたグルーヴィーなノードをどのように印刷しますか? XmlSlurper を使用して Xml を解析し、その後 StreamingMarkupBuilder で必要な xml ノードを出力できます。

String xml = Recall.getXml()
def telephoneNumbers = new XmlSlurper().parseText(xml)​​​​​​​​
def outputBuilder = new groovy.xml.StreamingMarkupBuilder()
String telephoneXml = outputBuilder.bind { mkp.yield telephoneNumbers.telephone }

ここに実行可能な例を投稿しました: http://groovyconsole.appspot.com/script/1245001 SOAPUI を使用せず、デモンストレーション用の単純な文字列を使用します。お役に立てれば!

于 2013-10-25T21:22:04.787 に答える