2016-05-11 2 views
0

Я пытаюсь автоматизировать с использованием groovy script. Вот мой сценарий. Я не могу назвать namspace.не удалось извлечь атрибут из xml в groovy script

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

Теперь я хочу, чтобы принести атрибут в ContactPoint тег для этого я попытался как этот

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}') 

, и я также пытался это

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

, но без помощи. пожалуйста, кто-нибудь скажите мне, как это сделать?

ответ

0

попытаться использовать это, он должен работать

@ {имен 3} типа

если вы видите хз: тип = "Tele" Xmlns: Xs = "пространства имен 3" в contactPoint, затем xs, который имеет значение namespace 3 и {type} is Tele

Отредактировано. Вы можете использовать что-то вроде этого - с помощью xml Строка в формате XML

Защиту XML = новый XmlSlurper(). ParseText (xmlString)
Println xml.contactPreference.contactPointRel.contactPoint. "@ {Имен 3} типа"

+0

Благодаря может у скажите мне, какой метод я должен использовать, это 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

Смежные вопросы