PDA

Просмотр полной версии : Отображение XML-данных


Hunter_lis
25.08.2009, 11:21
Имеется XML-документ

<rss version="2.0">

<channel>
<item>
<title>AUD</title>
<pubDate>25.08.09</pubDate>
<description>126.57</description>
<quant>1</quant>
<index>UP</index>
<link/>
</item>

<item>
<title>GBP</title>
<pubDate>25.08.09</pubDate>
<description>248.48</description>
<quant>1</quant>
<index>DOWN</index>
<link/>
</item>

</channel>

</rss>

На сцене Flash имеется динамический текст с именем "boi"
В Action код:

myXML = new XML();
myXML.onLoad = function(success){
if(success){
_root.boi.text=myXML.firstChild.firstChild.nodeVal ue("title");
}
}

myXML.load("rss.xml");

Нужно отобразить данные: "title", "pubDate", "description" по отдельности. Пока ничего не получается даже с первым "title". Может кто поможет. Заранее благодарен.

udaaff
25.08.2009, 12:36
nodeValue -- это свойство, а не метод.
+
myXML.ignoreWhite = true;
И фёстчайлдов маловато =)

Hunter_lis
25.08.2009, 13:23
Отображается, но вместе с тегами почему-то. И еще такая фигня, можно ли сделать так, чтобы не писать кучу "firstChild и nextSibling",а допустим указать "firstChild номер 3 или nextSibling номер 5" Как то так.

cleptoman
25.08.2009, 13:24
хехе )

myXML = new XML();
myXML.onLoad = function(success){
if(success){
_root.boi.text=myXML.toString();
}
}

myXML.load("rss.xml");

Добавлено через 13 минут
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success){
if(success){
var nodesLen:Number = myXML.firstChild.firstChild.childNodes.length;
for(var i:Number = 0; i < nodesLen; i++ ){
//trace(myXML)
var nodeChldrenLength:Number = myXML.firstChild.firstChild.childNodes[i].childNodes.length;
trace("***** start " + myXML.firstChild.firstChild.childNodes[i].nodeName + "*****");
for(var j:Number = 0; j < nodeChldrenLength; j++){
//_root.boi.text=myXML.toString();
var node:XMLNode = myXML.firstChild.firstChild.childNodes[i].childNodes[j];
trace(node.nodeName + ": " + node.firstChild.nodeValue);
}
trace("***** end " + myXML.firstChild.firstChild.childNodes[i].nodeName + "*****");
}
}

myXML.load("rss.xml");

Hunter_lis
25.08.2009, 13:50
toString(); Если его вставляю, он отображает мне в виде текста все всю структуру XML файла вместе с тегами. Может он считает его HTML текстом, поэтому так?

Добавлено через 21 час 46 минут
cleptoman Попробовал использовать ваш код. Данные теперь загружаются с сервера в таком виде

start item*****
titletitle AUD
pubDatetitle 26.08.09
descriptiontitle 126.18
quanttitle 1
indextitle DOWN
linktitle undefined
***** end item*****
***** start item*****
titletitle GBP
pubDatetitle 26.08.09
descriptiontitle 246.47
quanttitle 1
indextitle DOWN
linktitle undefined
***** end item*****


На сцене не отображаются. Наверно вместо звездочек в вашем коде, нужно поставить теги "title" или "pubDate" и т.п. только чет я торможу. Пробовал подставлять, ничего не происходит, на сцене тоже ничего не появляется и ошибок не выдает. Где я не прав?

Добавлено через 42 часа 45 минут
Народ, прием!!! Поможет кто нибудь или нет. Куда все делись?