2015-11-12 4 views
0

У меня есть soapui, и я пытаюсь извлечь значение false из файла XML.Groovy извлекает значение из xml-файла

responseCurrentDate.xml

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="https://alo.io/ns/20130518"> 
    <soap:Body> 
     <log_resp> 
     <alo_env> 
      <cid>K06BZQ6476WHP5ZFWW0NEJC937GB</cid> 
      <result>ALO_OK</result> 
     </alo_env> 
     <item> 
      <response>{"timestamp": "2015-11-12T03:02:45Z", "data": null, "success": false, "error": {"message": "{'desc': \"Can't contact LDAP server\"}", "code": 500, "label": "Internal Server Error"}}</response> 
     </item> 
     </log_resp> 
    </soap:Body> 
</soap:Envelope> 

Я попытался это с заводной

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 

def date = new Date() 
def dts = date.format("yyy-MM-dd-HH-mm-ss") 

def myOutFile = "C:/temp2/response"+dts+".xml" 
def response = context.expand('${login#Response}') 
def f = new File(myOutFile) 
f.write(response, "UTF-8") 

def xmlfile = myOutFile 
def x = new XmlParser(),parseText(myOutFile) 
println it.response.item.success 

я получил ошибку:

org.xml.sax,SAXException.lineNumber1mcolumnNumber1,Content is not allowed in Prolog

+0

Почему вы пишете его в файл, а затем вызывают текст разбора в файле? Просто позвоните parseText в ответ –

ответ

1

Как указывает tim_yates, не спасают xml-содержимое в файле, просто используйте parseText с response:

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) 

def date = new Date() 
def dts = date.format("yyy-MM-dd-HH-mm-ss") 

def response = context.expand('${login#Response}') 
def x = new XmlParser().parseText(response) 

Но, если вам действительно нужно, чтобы сохранить содержимое в файле, чем использовать parse вместо parseText и с File например, не со строкой, содержащей имя файла:

def f = new File(myOutFile) 
f.write(response, "UTF-8")  
def x = new XmlParser().parse(f) 
+0

спасибо Tommaso Di Bucchianico и tim yates, он работает, но я не могу определить конкретное значение ответа, поэтому я хотел сохранить ответ в файле и искать конкретное значение, возможно, мне нужно сохранить файл как txt, я не знаю –

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