Показать сообщение отдельно
Старый 20.02.2013, 18:32
yasha005 вне форума Посмотреть профиль Отправить личное сообщение для yasha005 Найти все сообщения от yasha005
  № 6  
Ответить с цитированием
yasha005

Регистрация: Dec 2012
Сообщений: 100
Условный оператор, который сравнивает имена xml-объектов тут явно лишний, т.к. возвращаемые объекты имён у них в любом случае будут разные, значит это условие никогда не выполнится, как следствие данные никогда не обновятся

Добавлено через 4 минуты
хотя нет, извините, всё правильно, я просто не обратил внимание на переменные, которые вы объявляете внутри цикла

Добавлено через 15 минут
Незнаю насколько это будет проще, но по некторым источникам цикл while в обратном порядке выполняется немного быстрее чем for прямом порядке, и ещё один момент: будет эффективнее если длину массива запросить единожды чем кажды раз. Хотя мне думается что это такие незначительные нюансы, которые не особо важны.

Например так:

Код AS3:
private function refreshXML(basicXML:XML, update:XML) : XML
		{
			var i:int = basicXML.children().length();
			var j:int;
			var basicNode:XML;
			var updateNode:XML;
			while (--i > -1) 
			{
				basicNode = XML(basicXML.children()[i]);
				j:int = update.children().length();
				while (--j > -1) 
				{
					updateNode = XML(update.children()[j]);
					if (basicNode.name() == updateNode.name())
					{
						basicXML.replace(basicNode.childIndex(),updateNode);
					}
				}
			}
			return basicXML;
		}