Tôi đã tìm thấy this thread có ví dụ về phân tích cú pháp tệp XML với các công cụ XML có sẵn thông qua Sự kiện hệ thống. Có vẻ khá phức tạp với tôi mặc dù.
Còn có điều này (phần mềm miễn phí) scripting addition package để phân tích cú pháp/ghi XML. Đã không nhìn vào nó, nhưng nó có thể gọn gàng.
Cá nhân, tôi sẽ lưu tập lệnh của mình dưới dạng tập lệnh và sau đó tôi sẽ tạo một đoạn mã nhỏ/Ruby/perl/python/bất kỳ tập lệnh nào để phân tích cú pháp XML (vì tôi chỉ cảm thấy thoải mái hơn) Bó. Sau đó, tôi sẽ sử dụng AppleScript sau đó chuyển XML sang tập lệnh phân tích cú pháp từ 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 có thể là somthing như thế này (sử dụng Ruby như một ví dụ):
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 và gói REXML nên có sẵn trên bất kỳ máy Mac, vì vậy nó sẽ hoạt động ở bất cứ đâu… Tôi tin)
Điểm là, khi tập lệnh chạy nó sẽ tải xuống tệp XML bằng cURL, chuyển nó sang tập lệnh Ruby và cuối cùng, fooValue
trong AppleScript sẽ được đặt thành "thanh".
Tất nhiên, nếu XML phức tạp hơn, bạn sẽ cần thêm tập lệnh hoặc xem xét các tùy chọn khác. Có lẽ thậm chí còn nhiều cách để thực hiện nó (ví dụ, bạn chỉ có thể thực hiện một số thao tác chuỗi thay vì phân tích cú pháp XML đầy đủ, nhưng đó là một chút giòn), nhưng tôi sẽ dừng lại ở đây :)