2016-05-11 7 views
0

Ich versuche, mit groovy Skript zu automatisieren. Hier ist mein Skript. Ich kann den namespace nicht erwähnen.nicht in der Lage, Attribut aus XML in groovy Skript zu extrahieren

<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>

Jetzt will ich bei Contactpoint-Tag Attribut holen für dieses Ich mag dieses

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 

versucht haben versucht, diese

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

und ich auch versucht, dies

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

aber keine Hilfe. bitte jemand sagen mir wie man das macht ??

Antwort

0

versuchen, dies mit Hilfe sollte es funktionieren

@ {Namensraum 3} Typ

, wenn Sie sehen xs: type = "Tele" xmlns: xs = "Namespace 3" in contactPoint dann xs mit Wert Namespace 3 und {Typ} ist Tele

bearbeitet - Sie könnten so etwas verwenden - mit XML String als XML

def xml = new XmlSlurper(). ParseText (xmlString)
println xml.contactPreference.contactPointRel.contactPoint. "@ {Namensraum 3} Typ"

+0

Dank kann u Sag mir, welche Methode soll ich versuchen, das heißt xpath.evaluate oder context.expnad? – LowCool

+0

Hallo, ich habe versucht für beide wie 'context.expand ('$ {GetResponse # Antwort # // *: contactPoint/@ {namespace 3} type}')' dafür druckt es die Zeile wie es ist. und für '(String) xPath.evaluate ('//: contactpoint/@ {namespace 3} type' bzw. xPathConstants.STRING)' zeigt den Fehler – LowCool

+0

an Ich habe die Antwort bearbeitet, um den Code hinzuzufügen, der funktioniert. Bitte versuchen Sie – Anshul

Verwandte Themen