Reputation: 185
How do I use XML holder in groovy in order to find the Amount that belongs to all instances of Test1 in the xml below?
<BigTest>
<TestHeader>
<Name>Test</Name>
<Amount>5.00</Amount>
</TestHeader>
<TestHeader>
<Name>Test</Name>
<Amount>10.00</Amount>
</TestHeader>
<TestHeader>
<Name>Test1</Name>
<Amount>35.00</Amount>
</TestHeader>
<TestHeader>
<Name>Test1</Name>
<Amount>25.00</Amount>
</TestHeader>
<TestHeader>
<Name>Test2</Name>
<Amount>5.00</Amount>
</TestHeader>
</BigTest>
At the moment I am getting a []
response when I try the following:
log.info holder.getDomNodes("//*:TestHeader/*:Amount[Name = 'Test1']/text()").nodeValue
Upvotes: 2
Views: 1023
Reputation: 3946
def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context)
def holder=groovyUtils.getXmlHolder("StepName#Response")
def a = holder.getNodeValues("//*:BigTest//*:TestHeader[Name='Test1']//*:Amount")
for(def var in a)
{
log.info var
}
Just need to replace 'StepName' with your request step.
holder.getNodeValues("//*:BigTest//*:TestHeader[Name='Test1']//*:Amount")
will do it for you
Upvotes: 1