2017-01-24 4 views
1

나는 세 가지 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이

<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

요청에 따라 네임 스페이스를 사용하므로 응답 사이를 전환해야합니다.
네임 스페이스를 정의하는 방법은 무엇입니까?

case namespace = <h:table xmlns:h="http://www.w3.org/TR/html/">: 
    return "Response 1"; 
+0

문제는 명확하지 않습니다. 언제 문제가 있습니까? 그리고 무엇을 성취하려고합니까? 응답을 전환하면 무엇을 의미합니까? – Rao

답변

0

XmlHolder를 사용하여 요청의 DOM 트리를 반복 할 수 있습니다. XPath에 의해 요소를 질의하는 메소드 getDomNode을 제공합니다. 반환 된 노드의 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" 
}