in soapui the XML object used here is from org.w3c.dom package
so you need to read this article carefully before we can use xml object very well.
http://www.w3schools.com/dom/dom_nodetype.asp
Node Types - Return Values
The following table lists what the nodeName and the nodeValue properties will return for each node type:
Node Type nodeName returns nodeValue returns
Document #document null
DocumentFragment #document fragment null
DocumentType doctype name null
EntityReference entity reference name null
Element element name null
Attr attribute name attribute value
ProcessingInstruction target content of node
Comment #comment comment text
Text #text content of node
CDATASection #cdata-section content of node
Entity entity name null
Notation notation name null
NodeType Named Constant
1 ELEMENT_NODE
2 ATTRIBUTE_NODE
3 TEXT_NODE
4 CDATA_SECTION_NODE
5 ENTITY_REFERENCE_NODE
6 ENTITY_NODE
7 PROCESSING_INSTRUCTION_NODE
8 COMMENT_NODE
9 DOCUMENT_NODE
10 DOCUMENT_TYPE_NODE
11 DOCUMENT_FRAGMENT_NODE
12 NOTATION_NODE
from the soapui you can assert your response xml from the below way:
the default provide script as below:
import com.eviware.soapui.support.XmlHolder def holder = new XmlHolder( messageExchange.responseContentAsXml ) holder.namespaces["ns1"] = "http://ws.cdyne.com/WeatherWS/" def node = holder.getDomNode( "//ns1:GetCityForecastByZIPResponse[1]" ) assert node != null
in the instance ,it provide these objects we can use:
XmlHolder holder=new XmlHolder(""); Node[] nodes=holder.getDomNodes("xpath"); for(int k=0;k<nodes.length;k++){ NodeList nodelist=nodes[k].getChildNodes(); for(int j=0;j<nodelist.getLength();j++){ Node node=nodelist.item(j); Log.info("node type :"+node.getNodeType()); Short type=node.getNodeType(); if(type==Node.ELEMENT_NODE){ String nodename=node.getNodeName(); int csize=node.getChildNodes().getLength(); String nodevalue=null; if(csize>0){ nodevalue=node.getFirstChild().getNodeValue(); } } } }
use the above groovy script to assert the response xml content as you want .hope this save your time .