Форум 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 и HTML теги (http://www.flasher.ru/forum/showthread.php?t=136017)

kitslot 07.02.2010 22:43

XML и HTML теги
 
Подскажите плиз в чем грабли.
Делаю менюху на ActionScript2

Код AS1/AS2:

menu_xml = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(ok) {
        if (ok) {
                F_createMenu();
        }
};
menu_xml.load("menu.xml");
F_createMenu = function () {
        var len = menu_xml.childNodes[0].childNodes.length;
        for (var i = 0; i<len; i++) {
                _root.createEmptyMovieClip("btn"+i, i);
                var b = _root["btn"+i];
                b.createTextField("tf", 2, 0, 0, 200, 24);
                b.tf.html= true;
 
                with (b.tf) {
                        selectable = false;
                        htmlText = menu_xml.childNodes[0].childNodes[i].attributes.name;
                }
                b._y = (b._height+1)*i;
                b.link = menu_xml.childNodes[0].childNodes[i].attributes.link;
                b.onPress = function() {
                        getURL(this.link, "_self");
                };
        }
};

Данный скрипт загружает и парсит XML:
Код:

<menu>
<item name=':Зачем?дизайн' link='http://www.flashblog.ru'  />
<item name=':Почему?мы' link='http://www.flashblog.ru'  />
<item name=':Какие?мы' link='http://www.flashblog.ru'  />
<item name=':О чем?стоит подумать' link='http://www.flashblog.ru'  />
<item name=':Где?все купить' link='http://www.flashblog.ru'  />
</menu>

Работает на ура!, но если я вставляю в поля HTML теги:
Код:

<item name=':Зачем?<b>дизайн</b>' link='http://www.flashblog.ru'  />
то менюха не выводится, видимо парсер спотыкается... подскажите куда копать?
как его научить теги понимать, может както экранировать их можно?

Hauts 07.02.2010 22:55

Не пишите тэги в атрибутах. И используйте CDATA:
Код:

<item>
    <name><![CDATA[Зачем <b>дизайн</b>]]></name>
    <link>http://www.flashblog.ru</link>
</item>


udaaff 07.02.2010 22:55

Код:

Entity Description
 
&lt;    < (less than)
&gt;    > (greater than)
&amp;  & (ampersand)
&quot;  " (double quotes)
&apos;  ' (apostrophe, single quote)


kitslot 07.02.2010 23:29

так парсер не понял, undefined в полях выкинул
Код AS1/AS2:

<item>
    <name><![CDATA[Зачем <b>дизайн</b>]]></name>
    <link>http://www.flashblog.ru</link>
</item>

а вот так прокатило
Код AS1/AS2:

<item name='Зачем?&lt;b&gt;дизайн&lt;/b&gt;' link='http://www.flashblog.ru'  />

Спасибо!

Hauts 07.02.2010 23:40

Потому, что парсер немного изменить нужно.


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

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