Тема: XML Parsing?
Показать сообщение отдельно
Старый 16.05.2012, 11:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 27  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от Партизан Посмотреть сообщение
Может я тоже чего не понимаю?
Но как-то не вижу я преимуществ у obj.win.id[0].parameters.title.lang['ru'] и xml..lang.(@name=='ru')?
Это как раз одно из тех неявных заблуждений, о которых я говорил. В случае с XMLем имеем перебор и фильтрацию всех потомков узла xml с именем lang и потом еще эту выбранную группу фильтруем по id можно сказать, что в худшем случае получаем O(n^2), в то время как в случае с объектом имеем обычный доступ по имени, который фактически O(1).

Цитата:
Сообщение от Nooob Посмотреть сообщение
доступ к свойствам объекта быстрее чем к xml
даже такая ересь как:
Код AS3:
	var s:String = (function(list:XMLList):XML
	{
		for each (var node:XML in list)
		{
			if (node.@id == 'ru')
			{
				return node;
			}
		}
 
		return null;
	})(xml.languages.item).@flag;
работает быстрее, чем:
Код AS3:
	var s:String = xml.languages.item.(@id == "ru").@flag;
в целом я за строгую типизацию объектов, languages = Vector.<Item>, item = Item, id = Item.#id, flag = Item.#flag и за хранение локализации в отдельных друг от друга xml файлах с одинаковой структурой
Это потому, что в сгенерированном коде для "обычного" выражения внутри фильтра вместо того, чтобы просматривать только свойства текущего выбранного узла просматриваются все свойства доступные в текущем окружении (которое включает в себя узел). А еще и потому, что "обычный" код создает список, а вы возвращаете только один из элементов - т.е. код не делает одно и то же.

Но как я уже говорил, пытаться использовать XML в местах критичных к скорости - заниматься ерундой, т.как для каждой задачи существуют лучшие и худшие структуры данных, которые будут работать лучше любого универсального хранилища данных, а XML - даже на универсальное хранилище не потянет (т.е. в сравнении с SQL базами данных, например).
__________________
Hell is the possibility of sanity