我有三个XML文件
XML 1
<h:table xmlns:h="http://www.w3.org/TR/html/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
XML 2
<h:table xmlns:h="http://www.w3.org/TR/html2/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
XML 3
<h:table xmlns:h="http://www.w3.org/TR/html3/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
依赖于请求中的命名空间我必须在响应之间切换 如何定义命名空间?
case namespace = <h:table xmlns:h="http://www.w3.org/TR/html/">:
return "Response 1";
答案 0 :(得分:0)
您可以使用XmlHolder迭代请求的DOM树。它提供了方法getDomNode
来通过XPath查询元素。然后返回节点的getNamespaceURI
提供您要查找的命名空间字符串:
// create XmlHolder for request content
def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )
// XPath search for the element and then match its namespace
switch (holder.getDomNode( "//h:table" ).getNamespaceURI()) {
case ~/http:\/\/www.w3.org\/TR\/html\//:
return "Response 1"
case ~/http:\/\/www.w3.org\/TR\/html2\//:
return "Response 2"
case ~/http:\/\/www.w3.org\/TR\/html3\//:
return "Response 3"
}