sumitmishra
15 years agoOccasional Contributor
xml parsing with groovy
I am extracting a row of data from database, and one of the field value is an escaped xml body. I am trying to parse this xml using groovy to get a particular field. her's how my script looks:
import com.eviware.soapui.support.XmlHolder;
//Parse table row returned
def holder = new XmlHolder(messageExchange.responseContentAsXml);
//Store the field value that has xml in 'xml_data'
def xml_data = holder.getNodeValue("//Results//ResultSet//Row[1]//XML_DATA");
//Start parsing of xml_data
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
def holder1 = groovyUtils.getXmlHolder(xml_data);
holder1.namespaces["ns"] = "http://www.xxx.com/xx/yy;
//Pull out the field 'OrderNumber' from the nested xml
def on = holder1.getNodeValue("//ns:XData/OrderNumber");
log.info("xml_data: " + xml_data);
log.info("orderNumber: " + on);
This results in following:
Thu Jul 15 15:11:14 EDT 2010:INFO:xml_data: <?xml version="1.0" encoding="UTF-8"?>{XML Body output}
Thu Jul 15 15:11:14 EDT 2010:INFO:orderNumber:
it does not reutrn the field value to me. Am i approaching this correctly?
import com.eviware.soapui.support.XmlHolder;
//Parse table row returned
def holder = new XmlHolder(messageExchange.responseContentAsXml);
//Store the field value that has xml in 'xml_data'
def xml_data = holder.getNodeValue("//Results//ResultSet//Row[1]//XML_DATA");
//Start parsing of xml_data
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
def holder1 = groovyUtils.getXmlHolder(xml_data);
holder1.namespaces["ns"] = "http://www.xxx.com/xx/yy;
//Pull out the field 'OrderNumber' from the nested xml
def on = holder1.getNodeValue("//ns:XData/OrderNumber");
log.info("xml_data: " + xml_data);
log.info("orderNumber: " + on);
This results in following:
Thu Jul 15 15:11:14 EDT 2010:INFO:xml_data: <?xml version="1.0" encoding="UTF-8"?>{XML Body output}
Thu Jul 15 15:11:14 EDT 2010:INFO:orderNumber:
it does not reutrn the field value to me. Am i approaching this correctly?