我收到以下回复:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetUKLocationByPostCodeResponse xmlns="http://www.webserviceX.NET">
<GetUKLocationByPostCodeResult><![CDATA[<NewDataSet>
<Table>
<Town>Grangetown</Town>
<County>Cardiff</County>
<PostCode>CF1</PostCode>
</Table>
<Table>
<Town>Leckwith</Town>
<County>Vale of Glamorgan</County>
<PostCode>CF1</PostCode>
</Table>
<Table>
<Town>Canton</Town>
<County>Cardiff</County>
<PostCode>CF1</PostCode>
</Table>
<Table>
<Town>Cardiff</Town>
<County>Cardiff</County>
<PostCode>CF1</PostCode>
</Table>
</NewDataSet>]]></GetUKLocationByPostCodeResult>
</GetUKLocationByPostCodeResponse>
</soap:Body>
</soap:Envelope>
我可以使用属性转移提取Town,County,PostCode ..
但是,如何使用脚本断言提取相同内容..
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);
log.info(groovyUtils)
def holder = groovyUtils.getXmlHolder("GetUKLocationByPostCode#ResponseAsXml")
log.info(holder)
def num = holder.getNodeValue("//Town")
log.info(num)
它返回了意外的元素cdata ..如何解决这个问题..?
答案 0 :(得分:3)
我通过以下脚本实现了这一点:
import com.eviware.soapui.support.XmlHolder
responsexmlholder = new XmlHolder(messageExchange.getResponseContentAsXml())
responsexmlholder.declareNamespace("ns1","http://www.webserviceX.NET")
Cdataxml = responsexmlholder.getNodeValue("//ns1:GetUKLocationByPostCodeResult")
Cdataxmlholder = new XmlHolder(Cdataxml)
Town = Cdataxmlholder.getNodeValue("//Town")