Просмотр полной версии : количество объектов в XML
Дмитрий.
09.07.2007, 10:40
Если использовать такой код
oxml = new XML();
oxml.ignoreWhite = true;
oxml.load("objects.xml");
oxml.onLoad = trace(oxml.childNodes[0].childNodes.length);
То все работает и показывает количество узлов. А если вызывать загрузку XML из функции, то не работает.
function XML2 () {
oxml = new XML();
oxml.ignoreWhite = true;
oxml.load("objects.xml");
oxml.onLoad = trace(oxml.childNodes[0].childNodes.length);
}
В чем ошибка?
Первый код не может работать. И второй тоже.
oxml.onLoad = function() {
trace(this.firstChild.childNodes.length);
}
Если структура XML сложная, то в цикле, 1 за другим, обнули все объекты и посчитай сколько их было.
Дмитрий.
09.07.2007, 12:03
Первый код прекрасно работает.
this.create
09.07.2007, 12:04
Дмитрий
Свой XML покажите. Разумеется в упрощенном виде.
Дмитрий.
09.07.2007, 12:12
<NORTH_AMERICA>
<State>
<object></object>
<object></object>
</State>
</NORTH_AMERICA>
<South_AMERICA>
<State>
<object></object>
<object></object>
</State>
</South_AMERICA>
this.create
09.07.2007, 12:52
Я вставил ваш XML в XML редактор, а он пишет что XML не правильный.
А вот так все нормально.
<?xml version="1.0" encoding="UTF-8"?>
<main>
<NORTH_AMERICA>
<State>
<object></object>
<object></object>
</State>
</NORTH_AMERICA>
<South_AMERICA>
<State>
<object></object>
<object></object>
</State>
</South_AMERICA>
</main>
Совет: для работы с XML используйте специальные XML редакторы.
Далее:
oxml = new XML();
oxml.ignoreWhite = true;
oxml.load("objects.xml");
oxml.onLoad = trace(oxml.firstChild.childNodes[0].childNodes.length);
не работает ( как вам и указали).
function xmlLoader(fileName:String):Void {
oxml = new XML();
oxml.ignoreWhite = true;
oxml.load(fileName+'.xml');
oxml.onLoad = function(success:Boolean):Void {
if (success && !this.status) {
trace(this.firstChild.childNodes[0].childNodes.length);
}
};
}
//
xmlLoader('objects');
Вот вариант с функцией. Все прекрасно работает.
Первый код прекрасно работает.
Вот именно в таком виде он не может работать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.