Форум 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=139177)

maza_12345 25.04.2010 12:33

Не могу найти ошибку в xml парсере.
 
Добрый день, я в этом деле новичок, поэтому прошу помощи у вас =)
в общем такая беда приключилась, пишу я парсер xml для сайта, вроде всё вывел но почему-то на выходе полно undefined и не как не могу от них избавицо =((
Вот код парсера:
Код AS1/AS2:

Stage.scaleMode = "noScale";
Stage.align = "TL";
onResize = function () {
        tf1._width = Stage.width/1;
};
Stage.addListener(this);
_root.createTextField("tf1",1,0,0,564,0);
with (tf1) {
        selectable = true;//false
        multiline = true;
        textColor = 0x727272;
        autoSize = true;
        wordWrap = true;
        html = true;
}
 
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("main.xml");
 
 
myXML.onLoad = function(success) {
if (success == true) {
 content = myXML.firstChild;
 section = content.firstChild;
 for (h=0; h<section.childNodes.length; h++) {
  article = section.childNodes[h];
  tf1.htmlText += '\t\t'+article.attributes.name+'\n';
        var title = article.childNodes[0];
        var anons = article.childNodes[1];
        var body = article.childNodes[2];
        var info = article.childNodes[3];
        var rating = article.childNodes[4];
  tf1.htmlText += ('\t\t\t'+title.firstChild.nodeValue+'\n \n'+anons.firstChild.nodeValue+'\n \n'+'\t\t'+info.attributes.creationDate+'\t\t\t'+info.attributes.author+'\t\t\t'+info.attributes.authorEmail+'\t\t\t'+rating.firstChild.nodeValue+'\n \n');
  tf1.htmlText += ('\t\t\t'+pic.firstChild.nodeValue+'\n\n');
 
 }
}
};

вот xml который парсю:
Код:

<?xml version="1.0" encoding="UTF-8"?>

<content>
        <section name="topRated">

               
               
                <topArticle>
                        <title><![CDATA[<a href="asfunction:_root.myXML.onLoad,tf1.htmlText +=body.firstChild.nodeValue">С. Лихачев  Самое большое</a>]]></title>
                        <anons><![CDATA[А в чем самая большая цель жизни? Я думаю: увеличивать добро в окружающем нас. А добро – это прежде всего счастье всех людей. ]]></anons>
                        <body><![CDATA[Здесь полная новость]]></body>

                        <info creationDate="24.03.2010" author="Автор:Петр" authorEmail="E-mail:norths@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href="http://olrs.ru/index.php/konkursxml/rate/4/1/+1">+</a> 3 <a href="http://olrs.ru/index.php/konkursxml/rate/4/1/-1">-</a>]]></rating>
                </topArticle>

               
                <topArticle>
                        <title><![CDATA[Н. Гоголь.  О ПОМОЩИ БЕДНЫМ (Из письма к А. О. С......ой) ]]></title>
                        <anons><![CDATA[...Обращаюсь к нападеньям вашим на глупость петербургской молодежи, которая затеяла подносить золотые венки и кубки чужеземным певцам и актрисам в то самое время, когда в России голодают
целиком губернии.]]></anons>
<body><![CDATA[Тут полная новость]]></body>
                        <info creationDate="27.03.2010" author="Автор:Глеб" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href='http://olrs.ru/index.php/konkursxml/rate/13/1/+1'>+</a> 1 <a href='http://olrs.ru/index.php/konkursxml/rate/13/1/-1'>-</a>]]></rating>
                </topArticle>

               
                <topArticle>
                        <title><![CDATA[Ильин И. ]]></title>
                        <anons><![CDATA[Когда мне стукнуло восемь лет, бабушка подарила мне на елку красивую тетрадь в синем сафьянном переплете и сказала: “Вот тебе альбом, записывай в него все, что тебе покажется умным и хорошим; и пусть каждый из нас напишет тебе что-нибудь на память”... ]]></anons>
                        <body><![CDATA[Тут полная новость]]></body>
                        <info creationDate="27.03.2010" author="Автор:Глеб" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href='http://olrs.ru/index.php/konkursxml/rate/14/1/+1'>+</a> 0 <a href='http://olrs.ru/index.php/konkursxml/rate/14/1/-1'>-</a>]]></rating>
                </topArticle>

               
                <topStoryName name="Расказы"/>

               
                <topStory>
                        <title><![CDATA[Бабушка]]></title>
                        <anons><![CDATA[Просьбы внуков бабушка выполняла охотно, радуясь тому, что она, ещё, кому то нужна и на что то годна. Мне лестно сознавать, что я был её внуком. ]]></anons>
                        <body><![CDATA[Тут полная новость]]></body>
                        <info creationDate="27.03.2010" author="Автор:Андрей Баринов" authorEmail="E-mail:kidala77@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href='http://olrs.ru/index.php/konkursxml/rate/9/2/+1'>+</a> 11 <a href='http://olrs.ru/index.php/konkursxml/rate/9/2/-1'>-</a>]]></rating>
                </topStory>

               
                <topStory>
                        <title><![CDATA[Жизненная история.]]></title>
                        <anons><![CDATA[Мы жили в обычном каменном (кирпичном)доме на 60 квартир. Мне было 10
лет. Во дворе дома стояли деревянные двухэтажные сараи.]]></anons>
<body><![CDATA[Тут полная новость]]></body>
                        <info creationDate="27.03.2010" author="Автор:Осколков А. " authorEmail="E-mail:oskolkov_av@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href='http://olrs.ru/index.php/konkursxml/rate/16/2/+1'>+</a> 1 <a href='http://olrs.ru/index.php/konkursxml/rate/16/2/-1'>-</a>]]></rating>
                </topStory>

               
                <topStory>
                        <title><![CDATA[Андрей Платонов. Луговые мастера ]]></title>
                        <anons><![CDATA[Небольшая у нас река, а для лугов ядовитая. И название у
нее малое — Лесная Скважинка. Скважинкой она прозвана за то,
что омута в ней большие: старики сказывали, что мерили рыбаки
глубину деревом, так дерево ушло под воду...]]></anons>
<body><![CDATA[Тут полная новость]]></body>
                        <info creationDate="27.03.2010" author="Автор:Глеб" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href='http://olrs.ru/index.php/konkursxml/rate/12/2/+1'>+</a> 0 <a href='http://olrs.ru/index.php/konkursxml/rate/12/2/-1'>-</a>]]></rating>
                </topStory>

               
               
                <topVerseName name="Стихотворения"/>

                               
                <topVerse>

                        <title><![CDATA[С. Есенин    Весна ]]></title>
                        <anons><![CDATA[          Припадок кончен.
          Грусть в опале.
          Приемлю жизнь, как первый сон.
          Вчера прочел я в "Капитале",
          Что для поэтов -
          Свой закон.]]></anons>
          <body><![CDATA[Тут полная новость]]></body>
                        <info creationDate="27.03.2010" author="Автор:Глеб" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: <a href='http://olrs.ru/index.php/konkursxml/rate/11/4/+1'>+</a> 1 <a href='http://olrs.ru/index.php/konkursxml/rate/11/4/-1'>-</a>]]></rating>
                </topVerse>

               
               
                <topIllustrationName name="Илюстрации"/>

               
                <topIllustration>
                        <title><![CDATA[Самое большое]]></title>
                        <pic><![CDATA[ <a href="http://olrs.ru/editor/uploads/images/illustrations/e0ced219d1596e6e764c1c957b494bbb.jpg"><img src="http://olrs.ru/editor/uploads/images/illustrations/200_e0ced219d1596e6e764c1c957b494bbb.jpg"></a> <BR><BR><BR>]]></pic>
                        <info creationDate="14.04.2010" author="Автор:Елена Чернова" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: 1]]></rating>
                </topIllustration>

               
                <topIllustration>
                        <title><![CDATA[O лишениях]]></title>
                        <pic><![CDATA[ <a href="http://olrs.ru/editor/uploads/images/illustrations/2a47e6d0ed2d195e9d33f65c59c79c19.jpg"><img src="http://olrs.ru/editor/uploads/images/illustrations/200_2a47e6d0ed2d195e9d33f65c59c79c19.jpg"></a> <BR><BR><BR>]]></pic>
                        <info creationDate="14.04.2010" author="Автор:Иван Фомин" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: 0]]></rating>
                </topIllustration>

               
                <topIllustration>
                        <title><![CDATA[O лишениях 2]]></title>
                        <pic><![CDATA[ <a href="http://olrs.ru/editor/uploads/images/illustrations/b509876f555a04fd4f5f1f4c7bf9e871.jpg"><img src="http://olrs.ru/editor/uploads/images/illustrations/200_b509876f555a04fd4f5f1f4c7bf9e871.jpg"></a> <BR><BR><BR>]]></pic>
                        <info creationDate="14.04.2010" author="Автор:Анжелика Радкевич" authorEmail="E-mail:9999933@mail.ru" />
                        <rating><![CDATA[Рейтинг: 0]]></rating>
                </topIllustration>

               

        </section>
</content>

помогите избавица от undefined, и ещо вопрос, есть ли возможность нод <body> вывести в всплывающие окно при нажатии на название новости? я так понял ето делается с помощью asfunction но не знаю как =))

Заранее благодарен за помощь.

udaaff 26.04.2010 15:00

1. Весь html текст нужно складывать в строковую переменную, а не в htmlText сразу пихать. А в конце уже присвоить.
2. XML у вас неподходящую структуру имеет.
Узлы
Код:

<topStoryName name="Расказы"/>
<topVerseName name="Стихотворения"/>
<topIllustrationName name="Илюстрации"/>

должны быть родительскими узлами детей <topStory>, <topVerse>, <topIllustration>, соответственно. И <topArticle> тоже нужно в родителя засунуть по аналогии.
Причем разные блоки, например <topIllustration> и <topVerse>, у вас разные наборы детей содержат, а вы их пытаетесь обрабатывать одинаково.

Цитата:

и ещо вопрос, есть ли возможность нод <body> вывести в всплывающие окно при нажатии на название новости? я так понял ето делается с помощью asfunction но не знаю как =))
Это чушь вы написали:
Код:

<a href="asfunction:_root.myXML.onLoad,tf1.htmlText +=body.firstChild.nodeValue">
Смотрите пример по asfunction в хелпе.


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

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