Я нашел этот поток , в котором есть пример синтаксического анализа файла XML с помощью инструментов XML, доступных через системные события. Мне это кажется довольно запутанным.
Также есть (бесплатная) пакет дополнений для скриптинга для анализа / записи XML. Не смотрел на это, но это может быть аккуратно.
Лично я бы сохранил свой сценарий как набор сценариев, а затем я бы сделал небольшой скрипт php / Ruby / perl / python / любой другой для анализа XML (так как мне это более удобно) в расслоение. Затем я использую AppleScript, а затем передаю XML в скрипт синтаксического анализа из 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 может выглядеть примерно так (на примере Ruby):
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 и пакет REXML должны быть легко доступны на любом Mac, поэтому он должен работать где угодно… я считаю)
Дело в том, что при запуске скрипта он загружает XML-файл с помощью cURL, передает его в скрипт Ruby, и в конце fooValue
в AppleScript будет установлен на "bar".
Конечно, если XML более сложный, вам потребуется больше сценариев или другой взгляд на другие варианты.
Возможно, есть даже больше способов сделать это (например, вы могли бы просто выполнить некоторые манипуляции со строками вместо полного разбора XML, но это, конечно, немного хрупко), но я остановлюсь здесь:)