Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   pomogite s XML (http://www.flasher.ru/forum/showthread.php?t=60144)

Weax 03.07.2004 11:12

pomogite s XML
 
vot delaju nekij prognoz pogody na flashe, dlia etogo nado sparsit takoj xml fail: http://xoap.weather.com/weather/loca...70e6465403d92c

v princype s xml pocti dela ne imel i ne ocen predstavliaju kak sdelat na flashe ctob iz Node'a <dnam>Vilnius, Lithuania</dnam> delalas ctoto vrode var city = "Vilnius, Lithuania";
ctoby dopustim iz <day d="0" t="Saturday" dt="Jul 3"> avtomaticeski bralsia attribute "Saturday" i data "Jul 3" tak ctob eto mozno bylo by potom vyvesti primerno tak:
var d0_name = "Saturday";
var d0_date = "Jul 3";
dlia posledujushej zagonki v raznyje texfieldy, perevoda na drugoj jazyk i dalnejshix obrabotkax.

mozet ktonibud pokazal by primerik s odnim dniom a ja by peredelal pod ostalnyje 10 dnej prognoza pogody.

FreeLander 03.07.2004 18:36

Вложений: 1
ну конечно весь твой хмл парсить я не буду, но пару советов, если интересует:

пихай данные, характеризующие твои объекты, не как дочерние ветки, а в виде аттрибутов объекта:

вместо
Код:

  <head>
    <locale>en_US</locale>
    <form>MEDIUM</form>
    <ut>C</ut>
    <ud>km</ud>
    <us>km/h</us>
    <up>mb</up>
    <ur>mm</ur>
  </head>
  <loc id="LHXX0005">
    <dnam>Vilnius, Lithuania</dnam>
    <tm>4:35 PM</tm>
    <lat>54.63</lat>
    <lon>25.28</lon>
    <sunr>4:49 AM</sunr>
    <suns>9:57 PM</suns>
    <zone>3</zone>
  </loc>

Код:

  <head locale="en_US" form="MEDIUM" ut="C" ud="km" us="km" up="mb" ur="mm"/>
  <loc id="LHXX0005" dnam="Vilnius, Lithuania" lat="54.63" lon="25.28" sunr="4:49 AM" suns="9:57 PM" zone="3"/>

так их легче доставать оттуда.
вот пример:

Dindin 04.07.2004 02:28

Э-э-э, Фрилэндер. Невнимательно ты XML читал :):)
Цитата:

This document is intended only for use by authorized licensees of The Weather Channel. Unauthorized use is prohibited. Copyright 1995-2002, The Weather Channel Enterprises, Inc. All Rights Reserved.
То есть, похоже на то, что формируется эта бяка - где-то на стороне, а челу её просто разобрать на части надо. Можно так:
Код:

url = 'http://www.yourxmldomain.smp/sample.xml';
xmlEl = new XML();
xmlEl.load(url);
dataObj = {d:null, dname:null, date:null};
while (xmlEl != null) {
        if (xmlElt.nodeName == "day") {
                dataObj.d = xmlElt.attributes.d;
                dataObj.dname = xmlElt.attributes.t;
                dataObj.date = xmlElt.attributes.dt;
                // проверка текущго элемента
                //<day d="0" t="Saturday" dt="Jul 3">
        }
        //=================================================================
        if (xmlElt.firstChild != null) {
                // "Если есть дети..."
                xmlElt = xmlElt.firstChild;
                // Переходим на первого ребенка
        } else {
                // "Иначе..." ( то есть детей нету )
                if (xmlElt.nextSibling != null) {
                        // "Если есть брат..."
                        xmlElt = xmlElt.nextSibling;
                        // "то переходим на него"
                } else {
                        //"Иначе..." (то есть и братьев нету тоже)
                        xmlElt = xmlElt.parentNode.nextSibling;
                        // переходим на родителя и затем переходим на брата.                       
                }
        }
}


Weax 05.07.2004 02:42

Dindin spasibo, kakraz eto mne i nado, toka ctoto on ne rabotajet.. gdeto voznikajet oshybka v while i visnet flash player (beskonecnyj cikl)

esio vopros kak mne vyvesti dataObj.d v text field? prosto dataObj.d napisat tam gde var v properties ili net?

Weax 05.07.2004 03:27

i voobshe cegoto ne valit eta sistema s if (xmlElt.nodeName == "day") mozet ja ctoto ne tak delaju..

Dindin 05.07.2004 09:37

Вот тебе разбор ХМЛ и отрисовка дерева

Weax 05.07.2004 15:18

gde:)) ?

Dindin 05.07.2004 18:08

Вложений: 1
Ой =)


Часовой пояс GMT +4, время: 15:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.