Encontré this thread que tiene un ejemplo de analizar un archivo XML con las herramientas XML disponibles a través de System Events. Aunque me parece bastante intrincado.
También existe este (freeware) scripting addition package para analizar/escribir XML. No lo he mirado, pero podría ser ordenado.
Personalmente, me gustaría guardar mi secuencia de comandos como un paquete de secuencia de comandos, y luego haría un pequeño script php/Ruby/perl/python/lo que sea para analizar XML (ya que estoy más cómodo con eso) en el haz. Luego usaría AppleScript y luego pasaría el XML al script del analizador desde cURL.
AppleScript:
set scriptPath to POSIX path of (path to me as alias) & "Contents/Resources/parse_xml.rb"
set fooValue to do shell script "curl http://foo/test.xml 2> /dev/null | ruby " & quoted form of scriptPath
parse_xml.rb podría ser algo como este (usando Rubí como ejemplo):
require "rexml/document"
# load and parse the xml from stdin
xml = STDIN.read
doc = REXML::Document.new(xml)
# output the text of the root element (<foo>) stripped of leading/trailing whitespace
puts doc.root.text.strip
(Ruby y el paquete REXML debe estar fácilmente disponible en cualquier Mac, por lo que debería funcionar en cualquier lugar ... creo)
El punto es que, cuando se ejecuta el script, descargará el archivo XML con cURL, lo pasará al script de Ruby y, al final, fooValue
en el AppleScript se establecerá en "barra".
Por supuesto, si el XML es más complejo, necesitará más scripts, o eche otro vistazo a las otras opciones.
Probablemente haya incluso más formas de hacerlo (por ejemplo, podrías hacer algo de manipulación de cadenas en lugar de un análisis completo de XML, pero eso es un poco frágil, por supuesto), pero voy a parar aquí :)