PDA

Просмотр полной версии : как удобнее всего хранить эти данные? [xml]


mixey_lv
22.07.2005, 06:36
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<projecti>
<product>
<big_photo>big_photo.jpg</big_photo>
<thumbnail>thumbnail.jpg</thumbnail>
<thumbnail_tip><b>Litovskaja serija</b></thumbnail_tip>
<variations>
<okno>
<okno_pic>okno_pic.jpg</okno_pic>
<okno_description>litovka na kuhne</okno_description>
<okno_price>55ls</okno_price>
</okno>
<okno>
<okno_pic>okno_pic2.jpg</okno_pic>
<okno_description>litovka v gostinnoj</okno_description>
<okno_price>75ls</okno_price>
</okno>
<okno>
<okno_pic>okno_pic3.jpg</okno_pic>
<okno_description>litovka na balkone</okno_description>
<okno_price>80ls</okno_price>
</okno>
</variations>
</product>
<product>
<big_photo>big_photo2.jpg</big_photo>
<thumbnail>thumbnail2.jpg</thumbnail>
<thumbnail_tip><b>119 serija</b></thumbnail_tip>
<variations>
<okno>
<okno_pic>119_pic.jpg</okno_pic>
<okno_description>119 na kuhne</okno_description>
<okno_price>75ls</okno_price>
</okno>
<okno>
<okno_pic>119_pic2.jpg</okno_pic>
<okno_description>119 v gostinnoj</okno_description>
<okno_price>56ls</okno_price>
</okno>
<okno>
<okno_pic>119_pic3.jpg</okno_pic>
<okno_description>119 na balkone</okno_description>
<okno_price>23ls</okno_price>
</okno>
</variations>
</product>
</projecti>

Что касается <big_photo>, <thumbnail>, <thumbnail_tip> тут всё ясно...
xmlNode = this.firstChild;
big_image = [];
thumbnails = [];
thumbnail_tip = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
big_image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
thumbnails[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
thumbnail_tip[i] = xmlNode.childNodes[i].childNodes[2].firstChild.toString();

}

} else {
content.htmlText = "XML file not loaded!";
}
это парсится и работает :D
А вот как хранить <variations> http://flasher.ru/forum/images/russian/style2/icons/icon3.gif <okno> ? точнее окна... :) в одном варианте их (тэгов <okno>) будет 2 в другом 5,2,7,4....но в каждом <okno> будет ещё 3 тэга :(
Кто подскажет где и как это лучше хранить и как парсить?

as_68
22.07.2005, 10:54
А для <variations> <okno> childNodes.length так же как ты для остальных делал - узнаешь сколько окон ;)

mixey_lv
22.07.2005, 19:04
т.е. хранить тоже в массиве? простом?
потом мне надо делать так: выводить на экран один <product> и к нему все соответствующие <okno>, если я все <okno> загоню в массив...
как потом отсчитывать какие номера в массиве соответствуют конкретному <variations> ?

KidsKilla
22.07.2005, 19:25
okno = []
for(var i in gdetotam) okno[i] = {pic:val, description:val2, price:val3, pijnya:[val4, val5, val6...]}

логично? =)

а вообще вопрос какой-то дурацкий...

mixey_lv
22.07.2005, 21:21
как этот массив будет выглядеть?

и как потом обращаться к нему?

7thsky™
22.07.2005, 21:29
а может работать напрямую с xml? через XPath?

Gaen
23.07.2005, 03:29
Почему-то ты совсем не используешь аттрибутов тэгов, это напрашивается само собой -

<okno
pic="pic.jpg"
describtion="blablabla"
price="$999"
/>

Тогда всё ясно:


n=yourXML;
i=0;
while(n){
if(n.nodeName=="okno"){
someArray[i]=n.attributes;
i++;
n=nextNode(n); //(c) Iv
}
}

//....

_root.mc.pic.loadMovie(someArray[3]["pic"]);

mixey_lv
23.07.2005, 22:02
Этот скрипт "вешает" Флэш и через некоторое время мне предлагают обрубить его.
в чем проблема?
var products:XML = new XML();
products.ignoreWhite = true;
products.onLoad = function(success) {
trace(products.childNodes[0].attributes.price); // vivodit verno $999
n = products;
i = 0;
while (n) {
if (n.nodeName == "okno") {
someArray[i] = n.attributes;
trace(someArray[i]);
i++;
n = nextNode(n);
//(c) Iv
}
}
};
//
products.load("tmp.xml");

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<okno pic="pic.jpg" description="blablabla" price="$999"/>
<okno pic="pic2.jpg" description="2blablabla2" price="$29992"/>
<okno pic="pic3.jpg" description="3blablabla3" price="$39993"/>

as_68
25.07.2005, 11:22
вместо
someArray[i] = n.attributes;
надо по аналогии
products.childNodes[i].attributes.price
для description и для pic