Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Компилятор не видит некоторые теги в xml (http://www.flasher.ru/forum/showthread.php?t=194602)

HorusWM 18.02.2013 12:48

Компилятор не видит некоторые теги в xml
 
Парсится xml такого вида:
Код AS3:

<data>
    <content>
        <grid w="100" h="50"/>
 
        <atlas path="dawaevarvervesv"/>
        <atlas path="yngyunguumygmy"/>
 
        <size w="32" h="32"/>
    </content>
</data>

Собсно, все теги, кроме <size> видны, я имею доступ к значениям, но именно при обращении к <size> я получаю пробелы в трейсе и нули в коде при попытке присвоить их. Пробовал и перебором "for each" и прямым обращением (xml.content.size.@w например для длины) - один фик. Хотя строчкой выше получаю доступы к другим тегам. Причем, если выводить целиком <content>, то <size> присутствует, но конкретно его я получить не могу.
Впервые вижу такую байду, второй день уж ломаю голову, что не так то.. помогите, пожалуйста, кто сталкивался с подобным.

Deimos747 18.02.2013 12:53

size зарезервированное слово. Попробуйте:
Код AS3:

xml.content['size']

Если есть возможность, то используйте синоним, чтобы избегать таких проблем

caseyryan 18.02.2013 12:59

Цитата:

size зарезервированное слово. Попробуйте:
Где это оно зарезервировано?
Цитата:

Компилятор не видит некоторые теги в xml
Компилятор тут точно ни при чем. XML парсится в рантайме.

HorusWM 18.02.2013 13:01

Цитата:

Сообщение от Deimos747 (Сообщение 1121080)
size зарезервированное слово. Попробуйте:
Код AS3:

xml.content['size']

Если есть возможность, то используйте синоним, чтобы избегать таких проблем

Пробовал разные слова и с нижними пробелами и не имеющими отношения к size - ноль. Обращение xml.content['size'] тоже не дает результатов. Опять же, к другим тегам получаю доступ, сюда нет. Словно компилятор не хочет считывать теги (там несколько строчек с размерами и разными именами тегов и ни к одной не имею доступа) после тех, к которым получил доступ.

Цитата:

Компилятор тут точно ни при чем. XML парсится в рантайме.
Не правильно выразился) Флеш, смысли, интерпретатор.. не знаю, как точнее)

caseyryan 18.02.2013 13:10

Проверил, все нормально с этим xml файлом. И нифига size не зарезервированное слово, как говорили выше.
Вот мой тест:
Код AS3:

package 
{
        import flash.display.Sprite;
 
 
        public class Main extends Sprite {
 
                private var _xml:XML = <data>
                                                                <content>
                                                                        <grid w="100" h="50"/>
 
                                                                        <atlas path="dawaevarvervesv"/>
                                                                        <atlas path="yngyunguumygmy"/>
 
                                                                        <size w="32" h="32"/>
                                                                </content>
                                                        </data>;
 
                public function Main() {
                        trace(_xml..size.@w); // выводит 32
                }
 
        }
}

Понятно что у тега size тут контента нет вообще, что он должен выводить-то? Тут можно считать только атрибуты.

HorusWM 18.02.2013 13:24

У меня что-то вообще никак ничего( Написал другу строку с другими данными - тоже пробелы. И вне тега <content> и в нем. В трейсе выводится все, что было написано ранее, но новые строки нет.
Цитата:

Тут можно считать только атрибуты
Да, атрибуты-то и нужны. Полностью тег выводится, как она написан, но атрибуты, если стучаться к ним, выводятся так, словно они пустые.

caseyryan 18.02.2013 13:28

Повторю, проблема в коде, а не в xml.

HorusWM 18.02.2013 13:35

Цитата:

Сообщение от caseyryan (Сообщение 1121088)
Повторю, проблема в коде, а не в xml.

Создал еще одну вложенную ветку и поместил строки туда - пошло. Странно вообще, но сомневаюсь, что дело в коде.

caseyryan 18.02.2013 14:17

Цитата:

но сомневаюсь, что дело в коде.
У меня все работает и так. Так что дело 100% в коде. Тут никаких сомнений.
Спорить на эту тему можно сколько угодно. Пока нет, кода, сказать где в нем проблема невозможно.

yasha005 18.02.2013 23:24

Я считаю что проблема не в коде, а в самом xml-листинге. Так-то тэги должны быть как открывающиеся, так и закрывающиеся, а то по-логике у вас получается что тэг atlas вложен в тэг grid и т.д. идёт вложение до ближайшего закрывающегося тэга content

Код AS3:

<data>
    <content>
        <grid w="100" h="50"></grid>
 
        <atlas path="dawaevarvervesv"></atlas>
        <atlas path="yngyunguumygmy"></atlas>
 
        <size w="32" h="32"/></size>
    </content>
</data>



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

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