2017-01-24 14 views
1

私は3つの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

を持っています

リクエストに応じてネームスペースに依存しますが、レスポンスを切り替える必要があります。
名前空間を定義する方法は?

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" 
} 
関連する問題