PDA

Просмотр полной версии : null: null...


billioner
06.07.2005, 15:27
Пытаюсь загрузить строки из XML, но Flash не может прочитать. XML сохранен в Юникоде. Вот XML:

<perviy>
<google>Use our google system</google>
<yandex>Use our yandex system</yandex>
<rambler>Use our rambler system</rambler>
<mail>Use our mail system</mail>
</perviy>

А вот ActionScript

myDoc = new XML();
myDoc.load ("123.xml");
function showNodes (node){
trace (node.nodeName + ": " + node.nodeValue);
for (var child = node.firstChild; child != null; child = child.nextSibling) {
showNodes(child);
}
}
showNodes (myDoc);

При тестировании трейсит "null: null"

В чем проблема?

MIX-er
06.07.2005, 15:37
Может те нада вот так написать ?)
<perviy>
<node1 var="Use our google system" />
<node2 var ="Use our yandex system" />
</perviy>

KidsKilla
06.07.2005, 15:40
1) nodeValue ток для текстовых нод всегда у тя будет нулл
2)
myDoc = new XML();
myDoc.load ("123.xml");
function showNodes (node){
trace (node.nodeName + ": " + node.nodeValue);
for (var child = node.сhildNodes.length; child; child--) {
showNodes(node.сhildNodes[child]);
}
}
showNodes (myDoc.firstChild);

по-моему так, но не пробовал.

billioner
06.07.2005, 15:45
to Mix-er:
null: null

to KidsKilla:
undefined: undefined

KidsKilla
06.07.2005, 15:48
аа, кстати, этаааа:

myDoc = new XML();
myDoc.load ("123.xml");
function showNodes (node){
trace (node.nodeName + ": " + node.nodeValue);
for (var child = node.сhildNodes.length; child; child--) {
showNodes(node.сhildNodes[child]);
}
}
myDoc.onLoad = function(){
showNodes (this.firstChild);
}

billioner
06.07.2005, 16:18
Чет я вообще ни бум-бум - всёж правильно, а выдал вообще "null:" только...
Т.е. не то что использовать - даже прочитать не получается....

KidsKilla
06.07.2005, 16:24
делай так:

myDoc = new XML();
myDoc.load ("123.xml");
function showNodes (node){
trace(node)
trace (node.nodeName + ": " + node.nodeValue);
for (var child = node.сhildNodes.length; child; child--) {
showNodes(node.сhildNodes[child]);
trace(node.сhildNodes[child])
}
}
myDoc.onLoad = function(){
showNodes (this.firstChild);
}

MIX-er
06.07.2005, 17:24
stop();
xml = new XML();
xml.onLoad = function(success) {
if (success) {
trace(xml.toString());
parseXml();
} else {
trace("Xml file not find");
}
};
xml.load("123.xml");
xml.ignoreWhite = true;
function parseXml() {
col = xml.firstChild.childNodes.length;
trace(col);
Name = [];
Note = [];
for (var i = 0; i<col; i++) {
Note[i] = xml.firstChild.childNodes[i].attributes.Note;
Name[i] = xml.firstChild.childNodes[i].nodeName;
}
trace(Name);
trace(Note);
}

и что тут не так?

<perviy>
<google Note="Use our google system" />
<yandex Note="Use our yandex system" />
<rambler Note="Use our rambler system" />
<mail Note="Use our mail system" />
</perviy>

billioner
06.07.2005, 18:17
Во! Оба варианта рабочие, помогли, спасибо! По конечному результату ближе вариант Mix-er'а. KidsKilla - спасибо за исправление кода!