Страница 399 из 478 Пример Ajax XML, использующий YUI Теперь посмотрим, как метод asyncRequest используется с XML, для чего вызовем Yahoo! RSS-поток, содержащий сведения о погоде в Вашингтоне, округ Колумбия, воспользовавшись кодом примера 19.2, yuixmlgethtml. Пример 19.2. yuixmlget.html <html><head><titlе>Пример YUI XML</title> </head><body> <h2>3aгрузка XML-контента в DIV-контейнер с помощью YUI</h2> <div id='inf0'>3T0 предложение будет 3aMeHeHo</div> <script src="yahoo-min.js"></scri pt> <scri pt src="event-min.jsH></script> <script src="connection-min.js"></script> <script> url = encodeURI("xml.weather.yahoo.com/forecastrss?p=20500") callback = { success:successHandler, failure:failureHandler } request = YAHOO.util.Connect.asyncRequest('GET', 'xmlget.php?url=' + url, callback) function successHandler(o) { root = o.responseXML.documentElement; title = root.getElementsByTagNameCdescription'JCO]. firstChild.nodeValue date = root.getElementsByTagNameClastBuildDate'HO]. fi rstChild.nodeValue text = root.getElementsByTagNameCdescription'Jtl]. firstChild.nodeValue document.getElementById('i nfo').i nnerHTML = title + "<br />'* + date + "<br />" + text function failureHandler(o) { document.getElementById('info').innerHTML = o.status + " " + o.statusText } </script></body></html> Этот документ немного похож на предыдущий, в него включены те же самые сценарии YUI-среды, но тут же вы сможете заметить, что используется другой url. Поскольку сам RSS-поток погоды воспринимает GET-параметр, использующий знак вопроса (?), нам необходимо закодировать его в URI: url = encodeURI ("xml .weather .yahoo. corn/forecastrss?p=20500**) В результате кодирования любые специальные символы приобретают форму, не способную запутать PHP-программу, которая в противном случае может посчитать, что ей был передан какой-то дополнительный параметр. Далее вы увидите, что объект callback не отличается от предыдущего, поэтому мы не будем его рассматривать и перейдем к запросу, в котором изменилось только имя с urlget.php на xmlget.php, для того чтобы вызвать соответствующую РНР-программу для работы с XML. Программа xmlget.php ничем не отличается от той,
|