2016-05-11 28 views
0

groovyスクリプトを使用して自動化しようとしています。ここに私のスクリプトです。私はnamspaceについて言及することができません。groovyスクリプトでXMLから属性を抽出できません

<ns2:contactPref xmlns="namespace 1" xmlns:ns2="name space 2"> 
 
    <ns2:Information> 
 
    <value>Pass</value> 
 
    </ns2:Information> 
 
    <ns2:contactPreference> 
 
    <ns2:contactPointRel> 
 
     <contactPoint xs:type="Tele" xmlns:xs="namespace 3"> 
 
     <cat>mob</cat> 
 
     <med>Int</med> 
 
     </contactPoint> 
 
     </ns2:contactPointRel> 
 
     </ns2:contactPreference> 
 
    </ns2:contactPref>

今、私は私が

groovyUtils=new com.eviware.soapui.support.Groovyutills(context) 
def xPath=XPathFactory.newInstance().newXPath() 
def type=context.expand('${GetResponse#Response#//*:contactPoint/@xs:type}') 
log.info type 

この

def type=context.expand('${GetResponse#Response#//*:contactPoint/@type}') 

を試してみましたが、私も試してみました

次のように試してみましたが、このためにcontactPointタグ で属性を取得したいですこの

def resp=groovyUtils.getXmlHolder("GetResponse#Response") 
def type1=(String)xPath.evaluate('//:contactpoint/@xs:type',resp,xPathConstants.STRING) 

助けがありません。いくつかの1つ私にこれを行う方法を教えてください?

答えて

0

それは@

を動作するはずです、これを使用してみてください{名前空間には、3}と入力

あなたがXS見れば:タイプ= "テレ" のxmlns:XS = "名前空間3" をcontactPoint次に値がのxs名前空間3と{type}がTeleです

編集済み - xmlでこれを使用できますXML

デフXML =新しいXmlSlurper()。parseText(xmlString)
のprintln xml.contactPreference.contactPointRel.contactPoint。

+0

おかげでU缶 "@ {名前空間 3}入力" などの文字列どのメソッドを試してみてください?xpath.evaluateまたはcontext.expnadを意味しますか? – LowCool

+0

こんにちは、 'context.expand( '$ {GetResponse#Response#// *:contactPoint/@ {namespace 3} type}')'のように、この行をそのまま出力しています。 '(String)xPath.evaluate( '//:contactpoint/@ {namespace 3} type'、resp、xPathConstants.STRING)'エラー – LowCool

+0

を表示しています。してください。 – Anshul

関連する問題