Форум 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 распознавание (nodeValue) (http://www.flasher.ru/forum/showthread.php?t=118124)

Constantine88 15.11.2008 00:55

XML распознавание (nodeValue)
 
Здравствуйте.

Появилась необходимость использовать XML для flash-сайта.
С использованием класса XML и XMLNode вроде разобрался, но возникла одна проблема:

Вот такой код подгружает и должен разбирать XML-файл:
Код AS1/AS2:

var lang:XML = new XML();
lang.ignoreWhite = true;
lang.onLoad = function(success)
{
        if(success)
        {
                lang = this;
                var item:XMLNode = lang.firstChild.firstChild;
                trace(item.attributes.name);
                trace(item.nodeValue);
                trace(item.toString());
                item = item.nextSibling;
                trace(item.attributes.name);
                trace(item.nodeValue);
                trace(item.toString());
        }
}
lang.load("/languages/lang.xml");

XML:
Код:

<?xml version="1.0" encoding="UTF-8" ?>
<languages>
    <item name="en">en</item>
    <item name="ru">ru</item>
</languages>

Но output выдает следующее:
Код:

en
null
<item name="en">en</item>
ru
null
<item name="ru">ru</item>

То есть nodeValue он не читает...
Подскажите, пожалуйста, что не так и как это можно исправить.

Avtorpc 15.11.2008 01:53

v
Код AS1/AS2:

ar lang:XML = new XML();
lang.ignoreWhite = true;
lang.onLoad = function(success)
{
        if(success)
        {
                lang = this;
 
                var item:XMLNode = lang.firstChild.firstChild;
                trace(item);
                trace(item.attributes.name);
                trace(item.firstChild.nodeValue);
                trace(item.toString());
                item = item.nextSibling;
                trace(item.attributes.name);
                trace(item.firstChild.nodeValue);
                trace(item.toString());
        }
}
lang.load("/languages/lang.xml");

Вот такой скрипт будет работать. trace(item.nodeValue) выводит элемент 1-го типа (ELEMENT_NODE)он в свою очередь содержит элемент 3-го типа(TEXT_NODE) вот его значение и нужно вывести - trace(item.firstChild.nodeValue);

Constantine88 15.11.2008 02:28

Огромное спасибо! :)
а то уже голову сломал...
всегда считал, что узел - это '<item>text</item>', а оказывается, что 'text' - это подузел )

Avtorpc 15.11.2008 17:50

Цитата:

Сообщение от Constantine88 (Сообщение 777205)
Огромное спасибо! :)
а то уже голову сломал...
всегда считал, что узел - это '<item>text</item>', а оказывается, что 'text' - это подузел )

ТЕКСТ - это не подузел!!! Это тоже узел!!!!! Только текстовый))))

Constantine88 17.11.2008 20:04

Цитата:

Сообщение от Avtorpc (Сообщение 777295)
ТЕКСТ - это не подузел!!! Это тоже узел!!!!! Только текстовый))))

относительно узла "<item>text</item>", "text" - это подузел или "ребенок", если хотите. )
без паники и не надо флуда )


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

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