Получение значения атрибута xml с помощью Applescript - PullRequest
2 голосов
/ 07 апреля 2010

Я хочу разобрать Yahoo! Weather API и я хочу сохранить эти атрибуты элемента в переменных для дальнейшего использования:

<yweather:location city="Zebulon" region="NC"   country="US"/>
<yweather:astronomy sunrise="6:52 am"   sunset="7:39 pm"/>
<yweather:forecast day="Wed" date="7 Apr 2010" low="61" high="96" text="Partly Cloudy" code="29" />

Как я могу сделать это с appleScript?

Итак,

set locationCity to [city]
set locationRegion to [reagion]
set locationCountry to [country]

set astronomySunrise to [sunriseTime]
set astronomySunset to [sunsetTime]

Я хочу, чтобы прогнозы были в каком-то массиве, чтобы организовать их по дню / дате

1 Ответ

2 голосов
/ 07 апреля 2010

Системные события имеют небольшой набор собственных команд, которые могут помочь вам (не проверено):

(*
Assuming the following dummy XML:

<?xml version="1.0" encoding="UTF-8"?>
<RootTag>
    <yweather:location city="Zebulon" region="NC"   country="US"/>
    <yweather:astronomy sunrise="6:52 am"   sunset="7:39 pm"/>
    <yweather:forecast day="Wed" date="7 Apr 2010" low="61" high="96" text="Partly Cloudy" code="29" />
</RootTag>

*)

    set theXMLFile to ((choose file) as string)

    tell application "System Events"
        set theXMLData to contents of XML file theXMLFile
        tell theXMLData
            set theXMLRoot to XML element 1
        set locationTag to XML element 1 of theXMLRoot
        set cityAttribute to XML attribute 1 of locationTag
        return cityAttribute --> "Zebulon"
        end tell
    end tell

Исходя из того, что я понял, XML-хуки Applescript очень разборчивы в своем XML и не предлагают много возможностей для устранения неполадок, кроме как "некоторые данные не ожидаемого типа".

Я хожу в другом месте для моего анализа XML, и я рекомендую то же самое здесь. Если требуется чистое решение Applescript, я знаю только о добавлении XML Tools от Late Night Software (бесплатно) и Satimage имеет более сложный набор в комплекте с их набором (платно) но у меня нет опыта ни с одним из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...