PDA

Просмотр полной версии : Обработка простого внешнего Xml файла. Если кто знает, очень прошу помощи.


ccwds
07.08.2004, 20:41
Здраве буде, бояре!

Нет ли универсального кода, который предполагает, что вложенности тэгов в XML-овском документе нет, все равноправные child-ы, что все тэги разные (одинаковых двух, к примеру, <header1> нет), и чтобы этот код превращал название тэга в название переменной, а содержимое контейнера этого тега в значение переменной?

Если такового нет, не можете ли подсказать, как это сделать правильно? :confused:

Ну т.е.
<header1>Какой-то <b>текст 1</b><header1/>
<footer1>Какой-то <b>текст 2</b><footer1/>
<image1>Какой-то <b>текст 3</b><image1/>
<header2>Какой-то <b>текст 4</b><header2/>

чтобы пeредавал флэшу переменные

header1="Какой-то <b>текст 1</b>";
footer1="Какой-то <b>текст 2</b>";
image1="Какой-то <b>текст 3</b>";
header2="Какой-то <b>текст 4</b>";

ccwds
07.08.2004, 21:35
Меня терзают смутные подозрения, что флэш не распознаёт имена тэгов, иначе все было бы достаточно просто.

Ну тогда пусть XML такого вида

<titanic myvar="header1" myvarvalue="Какой-то <b>текст 1</b>"</titanic>
<titanic myvar="footer1" myvarvalue="Какой-то <b>текст 2</b>"</titanic>
<titanic myvar="image1" myvarvalue="Какой-то <b>текст 3</b>"</titanic>
<titanic myvar="header2" myvarvalue="Какой-то <b>текст 4</b>"</titanic>

Antares
07.08.2004, 22:43
Распознает, распознает. И атрибуты понимает...

Собрал пример на коленке, думаю, поймешь что надо поменять под твои нужды ;)

Antares
07.08.2004, 23:59
Более показательный пример.

Штрек
08.08.2004, 01:48
http://dembicki.narod.ru/tutor/a3.htm
Лучше не расскажешь. ;)

ccwds
08.08.2004, 04:38
Спасибо. Но "если туп, как дерево, то будешь баобабом.." :(
Что-то я туплю по-крупному.

Вот мой xml файл

<iceberg>
<titanic myvar="header1" myvarvalue="Какой-то <b>текст 1</b>"</titanic>
<titanic myvar="footer1" myvarvalue="Какой-то <b>текст 2</b>"</titanic>
<titanic myvar="image1" myvarvalue="Какой-то <b>текст 3</b>"</titanic>
<titanic myvar="header2" myvarvalue="Какой-то <b>текст 4</b>"</titanic>
</iceberg>

Вот код, считываю и все такое.

my_xml = new XML();
my_xml.ignoreWhite = true;
my_xml.load("galinhalt.xml");
my_xml.onLoad = function(status) {
if (status) {
extern_xml = this.firstChild.childNodes;
бла-бла...
бла-бла...
бла-бла...
delete my_xml;
} else {
trace("Все пропало, ничего не получилось!");
}
};

Я могу считывать значения myvar:
extern_xml[порядковый номер].attributes.myvar;

Я могу считывать значения myvarvalue:
extern_xml[порядковый номер].attributes.myvarvalue;

Но я запутался в eval-ах... ;)
Как мне объявить все мои считанные myvar переменными и присвоить им соответствующие значения myvarvalue?

Я еще раз извиняюсь за тупость, скорее всего, завтра, когда просплюсь, я пойму эти примеры, которые вы мне дали, еще раз спасибо! :)

Antares
08.08.2004, 06:01
А не проще ли, если переменных несколько, но они объединены в "серию", хранить их в массиве?

artfla$her
09.08.2004, 00:40
Я не смотрел примеров. Но есть функция set("имя переменной", значение). Может, напишешь set(myvar, myvarvalue) ? Убъешь двух зайцев сразу и даже от егеря по мордасам не словишь :) :)