Показать сообщение отдельно
Старый 01.06.2004, 15:53
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 9  
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
Вот пришла в голову мысля, попробовал, получилось.
Не факт, что подойдет в данном случае, но а вдруг...
Смысл затеи в том, чтобы минимизировать объем данных, которые требуется сохранить. Принцип такой:
Сохраняем не сам XML, а его структуру и атрибуты, которые могут изменять свое значение (data_from_so). Причем имя узла соответствует номеру описания узла в массиве.
Имеем массив образцов узлов (nodes_array)
И обходя структуру so_xml создаем my_xml

короче говоря, скрипт:

nodes_array = ["<node n='0' arg='hello' />", "<another_node n='1' >"];
data_from_so = "<0 attribut='any value'><0><1></1></0><1><0><1></1></0></1></0>";
so_xml = new XML(data_from_so);
my_xml = new XML();
XMLNode.prototype.reBuild = function(source_node) {
if (source_node.firstChild == undefined) {
return;
}
var node = source_node.firstChild, n, a, i
while (node) {
this.appendChild(new XML(_root.nodes_array[node.nodeName]).firstChild);
n = this.lastChild;
a = node.attributes;
for (i in a) {
n.attributes[i] = a[i];
}
arguments.callee.call(n, node);
node = node.nextSibling;
}
};
my_xml.reBuild(so_xml);
trace(so_xml);
trace(my_xml);