Просмотр полной версии : XML - уровни
Узел можно создать так:
w = new XML();
newP = w.createElement('P');
w.appendChild(newP);
newP = w.createElement('P');
w.firstChild.appendChild(newP);
а как действовать в цикле?
например childNodes[] ссылается на узлы в пределах одного уровня, а как сослаться на уровень используя индексируемые переменные никак не могу понять..
ссылается на узлы в пределах одного уровня, а как сослаться на уровень используя индексируемые переменные никак не могу понять..
если тебе нужно следующее
<ROOT>
<NODE>
<NODE>
<NODE/>
</NODE>
</NODE>
</ROOT>
делай так
xm=new XML("<ROOT />");
xml = xm.firstChild
i=0;
while(i<5){
node = xm.createElement('P');
xml.appendChild(node);
xml = xml.firstChild
i+=1
}
trace(xm)
xml = xm.firstChild
понятненько, спасибо:)
а как попасть на предыдущий уровень..?
сам отвечу
xml.parentNode;
вообще, мне не понятно зачем сначала нужно прировнять какой-то хмл к нашему(т.е xml к xm в данном случае) и затем работать с ним, а в остальном кажется догнал..
как можно посмотреть флэшевскую длинную хмл строчку в виде дерева?
сам отвечу
xml.parentNode;
вообще, мне не понятно зачем сначала нужно прировнять какой-то хмл к нашему(т.е xml к xm в данном случае) и затем работать с ним, а в остальном кажется догнал..Нет, если обратить внимание на типы, сразу становится ясно что здесь происходит.
Вообще есть класс XMLNode. Он содержит массив childNodes свойства lastChild, firstChild, nextSibling и пр.
Свойство XMLNode.firstChild - содержит ссылку на другой XMLNode и так далее. Т.е. ноды
вложены друг в друга.
Мождно записать консрукцию
xmlNode1= xmlNode2.firstChild.lastChild.childNodes[3] - и тоже получим ссылку на XMLNode. Таким образом мы перемещаемся по так называемому "XML дереву" и рассматриваем все его элементы относительно новой "точки". Имеем другие относительные пути ко всем нодам. Таким образом, записывая конструкцию
В своём примере, я ввёл переменную xml для перемещения по дереву, этот метод является одной из самых сильных сторон XML.
"XML" - наследует XMLNode. Это тот же XMLNode, только без поля attributes и некоторых других фич типа parentNode, т.е. несколько модифицированный. Он имеет методы парсинга, загрузки и прочие полезности, благодаря чему мы можем инициировать новые ноды.
doc = new XML("<ROOT />"); //создали новый XML
xml = doc.firstChild
// записали в переменную xml ссылку doc.firstChild
i=0;
while(i<5){
node = doc.createElement('P');
//создали новый нод, в doc. никакими doc.firstChild или
//doc.node к нему доступ не получим, только по ссылке this.node
xml.appendChild(node);
//теперь мы воткнули node в "дерево" и можем
//обратиться к нему через поле xml.firstChild
xml = xml.firstChild;
//что мы и сделали, одновременно переписав ссылку xml
i += 1
}
как можно посмотреть флэшевскую длинную хмл строчку в виде дерева?Не понял вопроса...
спасибо за подробный ответ:)
ну trace(xm); в результате появляется что-то такое
<1*0><1*0 /><0*1 /><-1*0 /><0*-1 /><1*-1 /><-1*1 /></1*0><0*1><1*0 /><0*1 /><-1*0 /><0*-1 /><1*-1 /><-1*1 /></0*1><-1*0><1*0 /><0*1 /><-1*0 /><0*-1 /><1*-1 /><-1*1 /></-1*0><0*-1><1*0 /><0*1 /><-1*0 /><0*-1 /><1*-1 /><-1*1 /></0*-1><1*-1><1*0 /><0*1 /><-1*0 /><0*-1 /><1*-1 /><-1*1 /></1*-1><-1*1><1*0 /><0*1 /><-1*0 /><0*-1 /><1*-1 /><-1*1 /></-1*1>
трудно понять что там к чему, приходится копировать в блокнот и превращать в "дерево"
утро:
-Ура я написал алгоритм бесконечного ветвления:)
Есть волшебный метод Поиск и слово Дерево :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.