Как преобразовать URL-адрес в поле в фотографию?

В Livecode я извлекаю информацию из базы данных с помощью XML и организую ее с помощью функции повтора. Поэтому для каждого узла есть такая информация, как фотография, имя, возраст и т.д.

Фотография, однако, считывается из XML как URL-ссылка фотографии. Есть ли способ автоматически загрузить этот URL и сделать так, чтобы изображение появилось с информацией также в этом узле после него?

on preOpenStack
 put url "http://www.petango.com/webservices/wsadoption.asmx/AdoptableSearch?authkey=XXXXXXXX&speciesID=&sex=&ageGroup=&location=&site=&onHold=&orderBy=&primaryBreed=&secondaryBreed=&specialNeeds=&noDogs=&noCats=&noKids=&stageID=" into  tURL
 put revCreateXMLTree( tURL, true, true, false) into tInfo
 put revXMLChildNames( tInfo, "ArrayOfXmlNode", return, "XmlNode", true) into tChildren
 repeat for each line tChild in tChildren
  add 1 to x
  put revXMLChildNames( tInfo, "ArrayOfXmlNode/"&tChild&backslash, return, "adoptableSearch", true) into tAdoptable

  put revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") into tData
  put "Name: " & revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Name") & return after tData
  put return after tData
  put return after tData
 end repeat

  put tData & return after tOutput
  set the text of field "tData" to tOutput

end preOpenStack

2 ответа

  1. Вы пишете, что XML-узел возвращает URL-адрес фотографии, но не записываете, какой это узел. что

      revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo")
    

    возвращает URL-адрес. Поместите URL-адрес в переменную и используйте его для задания текста объекта изображения:

    put revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") into myUrl
    put url myUrl into myPictureData
    if the result is empty then
      set the text of img 1 to myPictureData
    else
      beep
      answer error "Can't load picture."
    end if
    
  2. Извините за затягивание нити после отметок отличный ответ. Но обычно я просто устанавливаю имя файла для изображения:

    repeat for each line tChild in tChildren
       add 1 to x
       ...
       put revXMLNodeContents( tInfo, "ArrayOfXmlNode/"&tChild&"/"&tAdoptable&"/Photo") into myUrl
       create image ("image" && x)
       put it into tImageID
       set the filename of tImageID to myURL
       ...
    end repeat
    

    Это не будет проверять, если изображение загружается правильно, но как вы не получите никакого изображения в любом случае это простое решение.