<?xml version="1.0" encoding="windows-1251" ?> 
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Павел Левкович ‹ Корпоративный блог ‹  Red Graphic Systems</title> 
<link>http://blog.redgraphic.ru/</link> 
<description>Последние публикации в блоге Павел Левкович (Red Graphic Systems)</description> 
<language>ru</language> 
<managingEditor>info@redgraphic.ru</managingEditor> 
<copyright>Copyright (c) 2003 Red Graphic Systems</copyright> 
<generator>PHP script</generator> 

<item>
<guid isPermaLink="true">http://blog.redgraphic.ru/linur/14-12-04_265/</guid> 
<title>(14/12/04) Вычисление высоты окна при DTD XHTML 1.0</title> 
<link>http://blog.redgraphic.ru/linur/14-12-04_265/</link> 
<description>
&lt;p>По старинке, для вычисления высоты активной области окна браузера в IE использовалась конструкция — height=window.document.body.offsetHeight.&lt;br /> &lt;/p>
&lt;p>&lt;/p>
&lt;p>Но! Это все работало в IE только при DTD &lt;br />   &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">&lt;br /> &lt;/p>
&lt;p>А вот с &lt;br />   &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "&lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&lt;/a>">&lt;br />начинаются проблемы — теперь вместо высоты и ширины окна IE выдает размеры области в которой есть контент.&lt;br /> &lt;/p>
&lt;p>Для решения проблеммы предлагаю универсальный способ (работает во всех браузерах): &lt;/p>
&lt;p>В html код добавить строку:&lt;br />   &lt;div class="hidden" id="hidden"> &lt;/div> (можно вывести и с помощью JS).&lt;br /> &lt;br />В CSS добавить&lt;br />   .hidden {position: absolute; left: 0; bottom: 10px; height: 1px; width: 1px; font-size: 1px; line-height: 1px; z-Index: —1}.&lt;br />&lt;br />И, наконец в JS:&lt;br />   height=document.getElementById("hidden").offsetTop+10&lt;br />&lt;br />&lt;/p></description> 
<dc:date>2004-12-14T00:00:00</dc:date>
</item>

<item>
<guid isPermaLink="true">http://blog.redgraphic.ru/linur/08-09-04_246/</guid> 
<title>(08/09/04) Простой доступ к данным XML во Flash (ActionScript)</title> 
<link>http://blog.redgraphic.ru/linur/08-09-04_246/</link> 
<description>
&lt;P>При использовании &lt;B>XML&lt;/B> данных в своих скриптах, будь то &lt;B>JavaScript&lt;/B> или &lt;B>ActionScript&lt;/B>, необходимо постоянно помнить о порядке получаемых данных. Это затрудняет модернизацию ранее написанных скриптов и изменение &lt;B>XML&lt;/B> документа (добавление новых обьектов и изменение их порядка).&lt;/P>
&lt;P>&lt;/P>
&lt;P>Намного более эффективно использовать массив, в которых изначально вносяться данные из &lt;B>XML&lt;/B> документа, а сам &lt;B>XML&lt;/B> объект удаляется из памяти. Это позволяет изменять порядок элементов в &lt;B>XML&lt;/B> файле, а также упрощает модернизацию программы под новый объект &lt;B>XML&lt;/B>.&lt;/P>
&lt;P>&lt;/P>
&lt;P>Ниже приводится функция, написанная на &lt;B>ActionScript&lt;/B> (Flash 7), которая позволяет обращаться к загруженному &lt;B>XML&lt;/B> документу, используя обычный массив.&lt;/P>
&lt;P>&lt;/P>
&lt;P>&lt;O:P>
&lt;DIV style="BORDER-RIGHT: #fcae05 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #fcae05 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #fcae05 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #fcae05 1px solid; BACKGROUND-COLOR: #f6f0d5">&lt;CODE>&lt;FONT color=#000000>&lt;FONT color=#660000>&lt;?
&lt;br />&lt;/FONT>&lt;FONT color=#0000ff>&lt;BR>function &lt;/FONT>&lt;FONT color=#660000>varData&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>){ &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>var &lt;/FONT>&lt;FONT color=#660000>result &lt;/FONT>&lt;FONT color=#0000ff>= new Array(); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>if (!&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>firstChild&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeValue&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>length &lt;/FONT>&lt;FONT color=#0000ff> &lt;/FONT>&lt;FONT color=#660000>i &lt;/FONT>&lt;FONT color=#0000ff> &lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>childNodes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>length&lt;/FONT>&lt;FONT color=#0000ff>; &lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>++){ &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>var &lt;/FONT>&lt;FONT color=#660000>nodeNameTemp &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>childNodes&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>].&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>]){ &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>if (!&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>][&lt;/FONT>&lt;FONT color=#660000>0&lt;/FONT>&lt;FONT color=#0000ff>]){ &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>var &lt;/FONT>&lt;FONT color=#660000>nTemp&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>]; &lt;BR>&lt;/FONT>&lt;FONT color=#660000> result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>] = new Array(); &lt;BR>&lt;/FONT>&lt;FONT color=#660000> result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>][&lt;/FONT>&lt;FONT color=#660000>0&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>nTemp&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>} &lt;BR>&lt;/FONT>&lt;FONT color=#660000> result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>][&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>].&lt;/FONT>&lt;FONT color=#660000>length&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>varData&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>childNodes&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>]); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>} else &lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>nodeNameTemp&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>varData&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>childNodes&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>]); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>} &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>} else { &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>textType&lt;/FONT>&lt;FONT color=#0000ff>!=&lt;/FONT>&lt;FONT color=#007700>"true"&lt;/FONT>&lt;FONT color=#0000ff>) &lt;BR>&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_content"&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>firstChild&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>toString&lt;/FONT>&lt;FONT color=#0000ff>(); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>else { &lt;BR>&lt;/FONT>&lt;FONT color=#660000> result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_content"&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>toString&lt;/FONT>&lt;FONT color=#0000ff>(); &lt;BR>&lt;/FONT>&lt;FONT color=#660000> result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_content"&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_content"&lt;/FONT>&lt;FONT color=#0000ff>].&lt;/FONT>&lt;FONT color=#660000>substring&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_content"&lt;/FONT>&lt;FONT color=#0000ff>].&lt;/FONT>&lt;FONT color=#660000>indexOf&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>""&lt;/FONT>&lt;FONT color=#0000ff>)+&lt;/FONT>&lt;FONT color=#660000>1&lt;/FONT>&lt;FONT color=#0000ff>,&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_content"&lt;/FONT>&lt;FONT color=#0000ff>].&lt;/FONT>&lt;FONT color=#660000>lastIndexOf&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>"/"&lt;/"&lt; font>&lt;FONT color=#0000ff>)); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>} &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>} &lt;BR>&lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#007700>"_attributes"&lt;/FONT>&lt;FONT color=#0000ff>]=&lt;/FONT>&lt;FONT color=#660000>obj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;/FONT>&lt;FONT color=#0000ff>return &lt;/FONT>&lt;FONT color=#660000>result&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>}&lt;BR>&lt;BR>&lt;/FONT>&lt;/FONT>&lt;/CODE>&lt;/DIV>
&lt;P>&lt;/P>
&lt;P>&lt;/P>
&lt;P>Функция работает следующим образом: в нее поступает &lt;B>XML&lt;/B> объект, находятся все потомки поступившего узла, и если такие найдены, то для каждого из них функция вызывается снова. Если же потомков нет, то читаются данные этого узла и заносятся в массив. Причем для каждого узла выбираются и его атрибуты.&lt;/P>
&lt;P>&lt;/P>
&lt;P>Формат полученного массива следующий:&lt;/P>
&lt;P>&lt;/P>
&lt;UL style="MARGIN-TOP: 0cm" type=disc>
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Для содержимого - &lt;B style="mso-bidi-font-weight: normal">корень[“узел1”][“узел2”][“_&lt;/B>&lt;B style="mso-bidi-font-weight: normal">content”]&lt;/B> (если узел2 – единственный потомок у узла1)&lt;BR>    - &lt;B style="mso-bidi-font-weight: normal">корень[“узел1”][“узел2”][индекс][“_&lt;/B>&lt;B style="mso-bidi-font-weight: normal">content”]&lt;/B> (если узлов2 несколько, индекс начинается с нуля)&lt;/LI>&lt;/UL>
&lt;UL style="MARGIN-TOP: 0cm" type=disc>
&lt;LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Для атрибутов - &lt;B>корень[“узел1”][“узел2”][“_&lt;/B>&lt;B>attributes”][“имя атрибута”]&lt;/B>&lt;/LI>&lt;/UL>
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"> &lt;/P>
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">В ActionScript к массиву можно обращаться и опуская &lt;B>[]&lt;/B>, т.е &lt;B style="mso-bidi-font-weight: normal">корень.узел1.узел2._&lt;/B>&lt;B style="mso-bidi-font-weight: normal">content &lt;/B>или &lt;B style="mso-bidi-font-weight: normal">корень.узел1.узел2._&lt;/B>&lt;B style="mso-bidi-font-weight: normal">attributes.имя_атрибута &lt;/B>(подробнее об этом в мануал по &lt;B>ActionScript&lt;/B>)&lt;/P>
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">&lt;/P>
&lt;P>&lt;B style="mso-bidi-font-weight: normal">&lt;O:P>&lt;/O:P>&lt;/B>&lt;/P>
&lt;P>Таким образом для загрузки &lt;B>XML&lt;/B> документа нужно написать следующий код:&lt;/P>
&lt;P>&lt;/P>
&lt;P>&lt;O:P>
&lt;DIV style="BORDER-RIGHT: #fcae05 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #fcae05 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #fcae05 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #fcae05 1px solid; BACKGROUND-COLOR: #f6f0d5">&lt;CODE>&lt;FONT color=#000000>&lt;FONT color=#660000>&lt;?
&lt;br />&lt;/FONT>&lt;FONT color=#0000ff>&lt;BR>function &lt;/FONT>&lt;FONT color=#660000>parseXML&lt;/FONT>&lt;FONT color=#0000ff>(){ &lt;BR>&lt;/FONT>&lt;FONT color=#660000> arrXML &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>varData&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>this&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>firstChild&lt;/FONT>&lt;FONT color=#0000ff>); &lt;BR>&lt;/FONT>&lt;FONT color=#660000> delete data_xml&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#808080>//дальше действия над данными или переход на другие фреймы &lt;BR>&lt;/FONT>&lt;FONT color=#0000ff>} &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>System&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>useCodepage &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>true&lt;/FONT>&lt;FONT color=#0000ff>; &lt;/FONT>&lt;FONT color=#808080>//(если используете кириллицу) &lt;BR>&lt;/FONT>&lt;FONT color=#660000>data_xml &lt;/FONT>&lt;FONT color=#0000ff>= new &lt;/FONT>&lt;FONT color=#660000>XML&lt;/FONT>&lt;FONT color=#0000ff>(); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>data_xml&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>ignoreWhite &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>true&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>data_xml&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>onLoad &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>parseXML&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>data_xml&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>load&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>“путь к xml файлу”&lt;/FONT>&lt;FONT color=#0000ff>);&lt;BR>&lt;BR>&lt;/FONT>&lt;/FONT>&lt;/CODE>&lt;/DIV>
&lt;P>&lt;/P>
&lt;P>&lt;/P>
&lt;P>Обратиться к элементам массива можно будет так: &lt;B>arrXML.node.node[0]._content&lt;/B> и &lt;B>arrXML.node.node[0]._attributes.attribute&lt;/B>&lt;/P>
&lt;P>&lt;STRONG>&lt;/STRONG>&lt;/P>
&lt;P>&lt;STRONG>&lt;/STRONG>&lt;O:P>&lt;/O:P>&lt;/P>
&lt;P>Важной возможностью функции является то, что узлы отмеченные атрибутом &lt;B style="mso-bidi-font-weight: normal">textType="true" &lt;/B>не будут обрабатываться как &lt;B>XML&lt;/B> данные, а будут представлены как текст. Это дает возможность использовать &lt;B>HTML&lt;/B> теги в &lt;B>XML&lt;/B> узлах и их последующее применение, например, в&lt;B style="mso-bidi-font-weight: normal"> &lt;/B>&lt;B style="mso-bidi-font-weight: normal">textHtml.&lt;/B>&lt;/P>
&lt;P>&lt;STRONG>&lt;/STRONG>&lt;/P>&lt;/FONT></description> 
<dc:date>2004-09-08T00:00:00</dc:date>
</item>

<item>
<guid isPermaLink="true">http://blog.redgraphic.ru/linur/18-08-04_240/</guid> 
<title>(18/08/04) Применение XMLDOM для реализации дерева структуры</title> 
<link>http://blog.redgraphic.ru/linur/18-08-04_240/</link> 
<description>
&lt;style>
.linur_text p {margin-bottom : 13px}
&lt;/style>
&lt;div class="linur_text">
&lt;P>Мы настолько привыкли к представлению данных в виде дерева, что уже сложно представить, что есть другие решения для представления структуры каталогов и структуры сайта. Древовидная структура является наиболее понятной и простой при представлении структуры сайта.&lt;/P>
&lt;P>&lt;/P>
&lt;P>Допустим у нас есть скрипт, который отдает всю структуру сайта в виде xml документа, и теперь стоят следующие проблемы:&lt;/P>
&lt;UL type=disc>
&lt;LI>как использовать этот документ для представления структуры в виде дерева;&lt;/LI>
&lt;LI>как обеспечить быстрый доступ к нужному документу в дереве;&lt;/LI>
&lt;LI>в каком виде лучше представить это дерево;&lt;/LI>&lt;/UL>
&lt;P>&lt;/P>
&lt;P>Пойдем по порядку.&lt;/P>
&lt;P>&lt;/P>
&lt;P>Мы знаем, что документ лежит по адресу: &lt;U>http://mydomen.com/tree.xml&lt;/U>.&lt;/P>
&lt;P>&lt;/P>
&lt;P>Для загрузки парсинга xml документов в &lt;STRONG>IE&lt;/STRONG> есть ряд функций:&lt;/P>
&lt;P>&lt;/P>
&lt;P>Создаем новый &lt;STRONG>XMLDOM&lt;/STRONG> объект, выполняем загрузку документа, и получаем в памяти xml-дерево.&lt;/P>
&lt;P>&lt;/P>
&lt;P>&lt;I>Фрагмент кода, выполняющий загрузку и создание объекта &lt;/I>&lt;I>xml дерева:&lt;/I>&lt;/P>
&lt;DIV style="BORDER-RIGHT: #fcae05 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #fcae05 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #fcae05 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #fcae05 1px solid; BACKGROUND-COLOR: #f6f0d5">&lt;CODE>&lt;FONT color=#000000>&lt;FONT color=#660000>xmlfilepath &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#007700>"http://mydomen.com/tree.xml"&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>docobj &lt;/FONT>&lt;FONT color=#0000ff>= new &lt;/FONT>&lt;FONT color=#660000>ActiveXObject&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>"Msxml2.DOMDocument"&lt;/FONT>&lt;FONT color=#0000ff>); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>docobj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>async &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>false&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>docobj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>resolveExternals &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>false&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>docobj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>load&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>xmlfilepath&lt;/FONT>&lt;FONT color=#0000ff>) &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>&lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>docobj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>parseError&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>errorCode &lt;/FONT>&lt;FONT color=#0000ff>!= &lt;/FONT>&lt;FONT color=#660000>0&lt;/FONT>&lt;FONT color=#0000ff>)&lt;/FONT>&lt;FONT color=#660000> reportParseError&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>docobj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>parseError&lt;/FONT>&lt;FONT color=#0000ff>); &lt;/FONT>&lt;FONT color=#808080>// передает в пользовательскую функцию информацию о ошибке&lt;/FONT> &lt;/FONT>&lt;/CODE>&lt;/DIV>
&lt;P>IE представляет достаточный функционал для обработки этого дерева:обход ветвей дерева, получение содержание узла, получение свойств узла, перемещение узлов, копирование узлов, создание узлов и т.д.&lt;/P>
&lt;P>&lt;/P>
&lt;P>&lt;I>Рекурсивная функция для отображения узла дерева:&lt;/I>&lt;/P>
&lt;DIV style="BORDER-RIGHT: #fcae05 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #fcae05 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #fcae05 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #fcae05 1px solid; BACKGROUND-COLOR: #f6f0d5">&lt;CODE>&lt;FONT color=#000000>&lt;FONT color=#0000ff>function &lt;/FONT>&lt;FONT color=#660000>viewNode&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>){ &lt;BR>var &lt;/FONT>&lt;FONT color=#660000>childs &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>childNodes&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>var &lt;/FONT>&lt;FONT color=#660000>childnodes &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>childs&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>length&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>var &lt;/FONT>&lt;FONT color=#660000>visible &lt;/FONT>&lt;FONT color=#0000ff>= (&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>!=&lt;/FONT>&lt;FONT color=#007700>'treeitem'&lt;/FONT>&lt;FONT color=#0000ff>)?&lt;/FONT>&lt;FONT color=#660000>true&lt;/FONT>&lt;FONT color=#0000ff>:(&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>getNamedItem&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>'state'&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>text&lt;/FONT>&lt;FONT color=#0000ff>); &lt;BR>var &lt;/FONT>&lt;FONT color=#660000>curID &lt;/FONT>&lt;FONT color=#0000ff>= (&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"treeitem"&lt;/FONT>&lt;FONT color=#0000ff>)?&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>getNamedItem&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>'id'&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>text&lt;/FONT>&lt;FONT color=#0000ff>:&lt;/FONT>&lt;FONT color=#007700>""&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>&lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"treeitem"&lt;/FONT>&lt;FONT color=#0000ff>){ &lt;BR>&lt;/FONT>&lt;FONT color=#660000> result_str&lt;/FONT>&lt;FONT color=#0000ff>+= &lt;/FONT>&lt;FONT color=#660000>showHTLMNode &lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>curID&lt;/FONT>&lt;FONT color=#0000ff>, &lt;/FONT>&lt;FONT color=#660000>childs&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>item&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>0&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>text&lt;/FONT>&lt;FONT color=#0000ff>, &lt;/FONT>&lt;FONT color=#660000>visible&lt;/FONT>&lt;FONT color=#0000ff>); &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR> &lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"treeitem" &lt;/FONT>&lt;FONT color=#0000ff>|| &lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"tree"&lt;/FONT>&lt;FONT color=#0000ff>) &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>visible&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"visible" &lt;/FONT>&lt;FONT color=#0000ff>|| &lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"tree"&lt;/FONT>&lt;FONT color=#0000ff>) &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>for(var &lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#660000>0&lt;/FONT>&lt;FONT color=#0000ff>;&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>childnodes&lt;/FONT>&lt;FONT color=#0000ff>;&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>++) &lt;BR>&lt;/FONT>&lt;FONT color=#660000>    &lt;/FONT>&lt;FONT color=#0000ff>if (&lt;/FONT>&lt;FONT color=#660000>childs&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>item&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>nodeName&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>"treeitem"&lt;/FONT>&lt;FONT color=#0000ff>) {&lt;/FONT>&lt;FONT color=#660000>viewNode&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>childs&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>item&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>i&lt;/FONT>&lt;FONT color=#0000ff>))}; &lt;BR>} &lt;BR>} &lt;BR>&lt;/FONT>&lt;FONT color=#808080>//где showHTLMNode() – функция формирующая HTML для каждого узла в соответствии с его id, названием и флагом скрытия/раскрытия. &lt;BR>&lt;/FONT>&lt;/FONT>&lt;/CODE>&lt;/DIV>
&lt;P>&lt;/P>
&lt;P>В итоге у нас получается строка &lt;STRONG>result_str&lt;/STRONG>, которая содержит наше дерево и мы можем теперь присвоить его любому контейнеру с помощью &lt;B>innerHTML.&lt;/B>&lt;/P>
&lt;P>Причем получился набор вложенных &lt;STRONG>div&lt;/STRONG>, поэтому очень легко реализовать функционал скрытия/раскрытия узлов (достаточно тегу &lt;STRONG>div&lt;/STRONG> изменить &lt;B>innerHTML&lt;/B>)&lt;/P>
&lt;P>&lt;/P>
&lt;P>&lt;I>Функция скрытия (раскрытия узла в структуре сайта):&lt;/I>&lt;/P>
&lt;DIV style="BORDER-RIGHT: #fcae05 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #fcae05 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #fcae05 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #fcae05 1px solid; BACKGROUND-COLOR: #f6f0d5">&lt;CODE>&lt;FONT color=#000000>&lt;FONT color=#0000ff>function &lt;/FONT>&lt;FONT color=#660000>changeState&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>nodeid&lt;/FONT>&lt;FONT color=#0000ff>){ &lt;BR>var &lt;/FONT>&lt;FONT color=#660000>curNode &lt;/FONT>&lt;FONT color=#0000ff>= &lt;/FONT>&lt;FONT color=#660000>docobj&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>nodeFromID&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>nodeid&lt;/FONT>&lt;FONT color=#0000ff>); &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>if(&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>getNamedItem&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>'state'&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>text&lt;/FONT>&lt;FONT color=#0000ff>==&lt;/FONT>&lt;FONT color=#007700>'visible'&lt;/FONT>&lt;FONT color=#0000ff>) &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>getNamedItem&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>'state'&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>text&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>'hidden'&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>else &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  curNode&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>attributes&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>getNamedItem&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#007700>'state'&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>text&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>'visible'&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>result_str &lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>""&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>viewNode&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>curNode&lt;/FONT>&lt;FONT color=#0000ff>); &lt;BR>&lt;/FONT>&lt;FONT color=#660000>document&lt;/FONT>&lt;FONT color=#0000ff>.&lt;/FONT>&lt;FONT color=#660000>getElementById&lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>nodeid&lt;/FONT>&lt;FONT color=#0000ff>).&lt;/FONT>&lt;FONT color=#660000>outerHTML&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#660000>result_str&lt;/FONT>&lt;FONT color=#0000ff>;&lt;BR>}&lt;/FONT> &lt;/FONT>&lt;/CODE>&lt;/DIV>
&lt;P>
&lt;P>&lt;/P>
&lt;P>&lt;/P>Для более простого анализа данной реализации древовидной структуры приведу пример xml документа:&lt;/P>
&lt;P>&lt;I>&lt;/I>&lt;/P>
&lt;P>&lt;I>Формат &lt;/I>&lt;I>xml файла:&lt;/I>&lt;B>&lt;/B>&lt;/P>
&lt;DIV style="BORDER-RIGHT: #fcae05 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #fcae05 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #fcae05 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #fcae05 1px solid; BACKGROUND-COLOR: #f6f0d5">&lt;CODE>&lt;FONT color=#000000>&lt;FONT color=#660000>Корень дерева – &lt;STRONG>treeitem&lt;/STRONG>&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Свойства отсутствуют&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Родителей нет&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Потомки&lt;/FONT>&lt;FONT color=#0000ff>: &lt;/FONT>&lt;FONT color=#660000>&lt;STRONG>treeitem&lt;/STRONG>&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>Узел дерева – &lt;STRONG>treeitem&lt;/STRONG>&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Свойства&lt;/FONT>&lt;FONT color=#0000ff>: &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;STRONG> id&lt;/STRONG> &lt;/FONT>&lt;FONT color=#0000ff>- &lt;/FONT>&lt;FONT color=#660000>уникальный идентификатор узла&lt;/FONT>&lt;FONT color=#0000ff>; &lt;BR>&lt;/FONT>&lt;FONT color=#660000>&lt;STRONG> state&lt;/STRONG> &lt;/FONT>&lt;FONT color=#0000ff>[&lt;/FONT>&lt;FONT color=#660000>visible&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>hidden&lt;/FONT>&lt;FONT color=#0000ff>] - &lt;/FONT>&lt;FONT color=#660000>статус состояния узла &lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>свернут&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>развернут&lt;/FONT>&lt;FONT color=#0000ff>). &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Родители&lt;/FONT>&lt;FONT color=#0000ff>: &lt;/FONT>&lt;STRONG>&lt;FONT color=#660000>tree&lt;/FONT>&lt;FONT color=#0000ff>, &lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;/STRONG>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Потомки&lt;/FONT>&lt;FONT color=#0000ff>: &lt;/FONT>&lt;STRONG>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>,&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;/STRONG>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>Метка узла &lt;/FONT>&lt;FONT color=#0000ff>(&lt;/FONT>&lt;FONT color=#660000>определяет название узла при отображении&lt;/FONT>&lt;FONT color=#0000ff>) - &lt;/FONT>&lt;FONT color=#660000>&lt;STRONG>label&lt;/STRONG> &lt;BR>Свойства отсутствуют&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Родитель&lt;/FONT>&lt;FONT color=#0000ff>: &lt;/FONT>&lt;FONT color=#660000>&lt;STRONG>treeitem&lt;/STRONG>&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000>Потомков нет&lt;/FONT>&lt;FONT color=#0000ff>. &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;BR>Пример xml файла&lt;/FONT>&lt;FONT color=#0000ff>: &lt;BR>?&lt;/FONT>&lt;FONT color=#660000>xml version&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"1.0" &lt;/FONT>&lt;FONT color=#660000>encoding&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"WINDOWS-1252" &lt;/FONT>&lt;FONT color=#0000ff>? &lt;BR>&lt;/FONT>&lt;FONT color=#660000>tree&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_0" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"visible"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>Пример дерева структуры&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_2"&lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"visible"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>Подраздел 1&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_3" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"hidden"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>страница 1&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_4" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"hidden"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>страница 2&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_5" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"hidden"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>Страница 3&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_1" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"visible"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>Подраздел 2&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_6" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"visible"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>страница 1&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_8" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"hidden"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>страница 1.1&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>treeitem id&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"id_7" &lt;/FONT>&lt;FONT color=#660000>state&lt;/FONT>&lt;FONT color=#0000ff>=&lt;/FONT>&lt;FONT color=#007700>"hidden"&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff>&lt;/FONT>&lt;FONT color=#660000>страница 1.2&lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>label&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>   &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000>  &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>&lt;/FONT>&lt;FONT color=#660000> &lt;/FONT>&lt;FONT color=#0000ff>/&lt;/FONT>&lt;FONT color=#660000>treeitem&lt;/FONT>&lt;FONT color=#0000ff> &lt;BR>/&lt;/FONT>&lt;FONT color=#660000>tree&lt;/FONT>&lt;FONT color=#0000ff>&lt;BR>&lt;/FONT>&lt;/FONT>&lt;/CODE>&lt;/DIV>
&lt;P>&lt;/P>
&lt;P>&lt;/P>
&lt;P>&lt;SPAN style="FONT-SIZE: 12pt; COLOR: #333333; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-fareast-language: RU; mso-bidi-language: AR-SA">Тут представлен только общий механизм работы с &lt;/SPAN>xml деревом структуры. Можно добавить к каждому узлу возможные действия над страницей (свойства, контент), возможность перемещать узлы без перезагрузки документа, копировать и удалять узлы. Но все это как-нибудь потом…&lt;/P>
&lt;/div></description> 
<dc:date>2004-08-18T00:00:00</dc:date>
</item>
</channel>
</rss>