cancel
Showing results for 
Search instead for 
Did you mean: 

Groovy SCript for taking specific tag values into getDOMNodes

SOLVED
Highlighted
New Contributor

Groovy SCript for taking specific tag values into getDOMNodes

I have below response from SOAP UI

<m:bansArray>
<m:item>
<m:ban>4382640110 056</m:ban>
<m:banNickname></m:banNickname>
<m:billingAddressLine1>10500 RYAN</m:billingAddressLine1>
<m:billingAddressLine2>DORVAL QC</m:billingAddressLine2>
<m:billingName>DICOM TRANSPORTATION</m:billingName>
<m:billingPostalCode>H9P2T7</m:billingPostalCode>
<m:idrCustomerAccountId>506757</m:idrCustomerAccountId>
<m:invoiceSystemCode>CBSS</m:invoiceSystemCode>
<m:marketSegment>B</m:marketSegment>
<m:paperSuppressionFlag>Y</m:paperSuppressionFlag>
<m:serviceCode>CBSS</m:serviceCode>
<m:serviceCodeEnglishDescription>Phone</m:serviceCodeEnglishDescription>
<m:serviceCodeFrenchDescription>Téléphonie</m:serviceCodeFrenchDescription>
<m:transpromoStatus>A</m:transpromoStatus>
</m:item>
</m:bansArray>

 

I dont want to take the node values of serviceCodeEnglishDescription, serviceCodeFrenchDescription and transpromoStatus

 

I have written below Groovy scripting it is taking all the Node values

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) 

def holder = groovyUtils.getXmlHolder( "SOAP Request#Response" )

def nodes = holder.getDomNodes( "//*" );

def XMLlist = []

for( node in nodes )
{


def value = com.eviware.soapui.support.xml.XmlUtils.getNodeValue( node )
if((value!=null))
{
if(!(value.isAllWhitespace()))
{
XMLlist.add(value)
}
}

}
def Slist = XMLlist.size()

log.info "SOAP UI RESPONSE" + XMLlist

Here in my SOAP UI REsponse im getting all node values

SOAP UI RESPONSE[4382640110 056, 10500 RYAN, DORVAL QC, DICOM TRANSPORTATION, H9P2T7, 506757, CBSS, B, Y, CBSS, Phone, Téléphonie, A]

 

But i dont want all tags in SOAP UI RESPONSE.

could you please help

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Community Leader

Hi @deepthireddy :

 

Hope you will get help from below code 🙂

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

def holder = groovyUtils.getXmlHolder( "SOAP Request#Response" )

def nodes = holder.getDomNodes( "//*" )

def XMLlist = []

for( node in nodes )
{
	if(!(node.getNodeName().toString().contains("m:serviceCodeEnglishDescription")  || node.getNodeName().contains("m:serviceCodeFrenchDescription") || node.getNodeName().contains("m:transpromoStatus")) ){
		def value = com.eviware.soapui.support.xml.XmlUtils.getNodeValue( node )
		if((value!=null))
		{
			if( !(value.isAllWhitespace()))
				XMLlist.add(value)
		}
	}
}
def Slist = XMLlist.size()
log.info "SOAP UI RESPONSE" + XMLlist

Click "Accept as Solution" if my answer has helped,
Remember to give "Kudos" 🙂 ↓↓↓↓↓



Thanks and Regards,
Himanshu Tayal

View solution in original post

2 REPLIES 2
Highlighted
Community Leader

Hi @deepthireddy :

 

Hope you will get help from below code 🙂

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )

def holder = groovyUtils.getXmlHolder( "SOAP Request#Response" )

def nodes = holder.getDomNodes( "//*" )

def XMLlist = []

for( node in nodes )
{
	if(!(node.getNodeName().toString().contains("m:serviceCodeEnglishDescription")  || node.getNodeName().contains("m:serviceCodeFrenchDescription") || node.getNodeName().contains("m:transpromoStatus")) ){
		def value = com.eviware.soapui.support.xml.XmlUtils.getNodeValue( node )
		if((value!=null))
		{
			if( !(value.isAllWhitespace()))
				XMLlist.add(value)
		}
	}
}
def Slist = XMLlist.size()
log.info "SOAP UI RESPONSE" + XMLlist

Click "Accept as Solution" if my answer has helped,
Remember to give "Kudos" 🙂 ↓↓↓↓↓



Thanks and Regards,
Himanshu Tayal

View solution in original post

Highlighted
New Contributor

yes the script is working.

Thank you so much

New Here?
Join us and watch the welcome video:
Announcements
Top Kudoed Authors