Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   частичный экспорт данных из .xml (http://www.flasher.ru/forum/showthread.php?t=147813)

regenzer 14.12.2010 17:52

частичный экспорт данных из .xml
 
Доброго дня, уважаемые Флешеры!
Столкнулся с такой проблемкой:

есть 1 ключевой кадр с динамик полями под данные по сотрудникам;

содержимое xml файла:
Код:

<?xml version="1.0" encoding="iso-8859-1" ?>

<staff>

<pers>
<dep> Сотрудники </dep>

<duty>Генеральный директор</duty>
<name>Иван Иваныч</name>
<tel>100</tel>
<email>n@mail.ru</email>
<phone>8-888-88-88</phone>
</pers>

<pers>
<duty>Финансовый директор</duty>
<name>Семен Семеныч</name>
<tel>200</tel>
<email>s@mail.ru</email>
<phone>9-999-99-99</phone>
</pers>

<pers>
<duty>Менеджер</duty>
<name>Вася</name>
<tel>666</tel>
<email>v@mail.ru</email>
<phone>6-666-66-66</phone>
</pers>

</staff>


Код AS2:


Код AS1/AS2:

myGalleryXML = new XML();
myGalleryXML.ignoreWhite = true;
myGalleryXML.onLoad = loadXML;
 
myGalleryXML.load("staff.xml");
 
function loadXML(loaded) {
    if (loaded) {
 
          _root.dep1 = this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue;
 
          _root.duty100 = this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue;
          _root.name100 = this.firstChild.childNodes[0].childNodes[2].firstChild.nodeValue;
          _root.tel100 = this.firstChild.childNodes[0].childNodes[3].firstChild.nodeValue;
          _root.email100 = this.firstChild.childNodes[0].childNodes[4].firstChild.nodeValue;
          _root.phone100 = this.firstChild.childNodes[0].childNodes[5].firstChild.nodeValue;
 
          _root.duty200 = this.firstChild.childNodes[1].childNodes[0].firstChild.nodeValue;
          _root.name200 = this.firstChild.childNodes[1].childNodes[1].firstChild.nodeValue;
          _root.tel200 = this.firstChild.childNodes[1].childNodes[2].firstChild.nodeValue;
          _root.email200 = this.firstChild.childNodes[1].childNodes[3].firstChild.nodeValue;
          _root.phone200 = this.firstChild.childNodes[1].childNodes[4].firstChild.nodeValue;
          _root.email200btn = this.firstChild.childNodes[1].childNodes[5].firstChild.nodeValue;
 
          _root.duty300 = this.firstChild.childNodes[2].childNodes[0].firstChild.nodeValue;
          _root.name300 = this.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue;
          _root.tel300 = this.firstChild.childNodes[2].childNodes[2].firstChild.nodeValue;
          _root.email300 = this.firstChild.childNodes[2].childNodes[3].firstChild.nodeValue;
          _root.phone300 = this.firstChild.childNodes[2].childNodes[4].firstChild.nodeValue;
 
          _root.dep.text = _root.dep1;
          _root.duty1.text = _root.duty100;
          _root.name1.text = _root.name100;
          _root.tel1.text = _root.tel100;
          _root.email1.text = _root.email100;
          _root.phone1.text = _root.phone100;
 
          _root.duty2.text = _root.duty200;
          _root.name2.text = _root.name200;
          _root.tel2.text = _root.tel200;
          _root.email2.text = _root.email200;
          _root.phone2.text = _root.phone200;
 
          _root.duty3.text = _root.duty300;
          _root.name3.text = _root.name300;
          _root.tel3.text = _root.tel300;
          _root.email3.text = _root.email300;
          _root.phone3.text = _root.phone300;
 
          }
}



При старте флешки данные подтягиваются в соответствующие поля, но это происходит только с первыми двумя сотрудниками, т.е. Вася менеджер не отображается и в полях под него идет "undefined"
То же самое с последующими полями для других сотрудников, везде проставляется "undefined"

Подскажите пожалуйста, как можно обойти этот момент. И почему все-таки информация не отображается.
Спасибо!

udaaff 14.12.2010 18:15

Для оформления своего кода надо использовать соответствующие теги.

regenzer 14.12.2010 18:19

Спасибо! постараюсь так делать :)

udaaff 14.12.2010 18:29

В примере ошибок не заметно.

regenzer 14.12.2010 18:33

оки - сейчас еще раз все перепроверю :)

dark256 14.12.2010 18:35

Скомпилил - работает. Через анус конечно, но пашет.
Советы:
1. Сохраняйте XML __всегда___ в UTF-8.
Соотв заголовок д.б. такой:
Код:

<?xml version="1.0" encoding="utf-8"?>
Ну и редактор соответствующий.

2. Перед вставкой значений в текстовые поля, проверьте содержимое полученных переменных, для удобства и наглядности отладки.
Перед "_root.dep.text = _root.dep1;" вставьте вот это:
Код AS1/AS2:

 for ( var Q in _root ) trace( Q +" == "+_root[Q])

У вас там слишком все от руки написано, скорее всего просто запутались.

regenzer 14.12.2010 18:38

dark256, спасибо!


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

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