Языки информационного обмена

       

Пример использования модели DOM.


Рассмотрим простейший пример обработки XML документа с использованием DOM модели.

Рассмотрим следующий XML документ:

<example type="listing"> <?xml version="1.0" encoding="windows-1251"?> <?xml-stylesheet type='text/xsl' href='1.xsl'?> <book> <title>Языки информационного обмена </title> <type> Лекции </type> <file>Лекции.doc</file> </book>

Для отображения данного документа можно использовать следующий простой рекурсивный цикл.

<html> <!-- Эта программа загружает XML-документ в браузер IE5 и проходит все узлы, используя рекурсивную функцию, применяя к ним необходимый стиль оформления --> <!-- Загружаем XML-документ--> <XML ID="xdoc" SRC="documents.xml"></XML7gt; 7lt;SCRIPT7gt; //Создаем объект документа var myDoc=xdoc; //Просматриваем документ применяя к каждому тегу свой стиль оформления --> x=getchildren(myDoc); //***************Начало рекурсивной функции************* function getchildren(node) { var x=node.childNodes; var z=x.length; if (z!=0) { for(var i=0;i<z;i++) { if (x(i).nodeType==3) { document.write(x(i).nodeValue); document.write(); getchildren(x(i)); } else if (x(i).nodeName=="title") { document.write("<DIV STYLE='font-size:20pt;color:red;'>"); getchildren(x(i)); document.write("</DIV>"); document.write("</br>"); } else if (x(i).nodeName=="type") { document.write("<DIV STYLE='font-size:14pt;color:black;'>"); getchildren(x(i)); document.write("</DIV>"); document.write("</br>"); } else if (x(i).nodeName=="file") { document.write("<DIV STYLE='font-size:16pt;'>"); document.write("<a href="); getchildren(x(i)); document.write(">"); document.write("Файл"); document.write("</a>"); document.write("</DIV>"); document.write("</br>"); } else { getchildren(x(i)); } } } } </SCRIPT> </html>

Листинг 6.1.

Функция getchildren кода принимает в качестве параметра узел, создает список всех дочерних узлов, проходит по этому списку, проверяя, имеет ли каждый дочерний узел свои собственные дочерние узлы, и если имеет, то вызывает сама себя. При этом к тегам с именами title, type, file применяются соответствующие стили.

Применив эту функцию к нашему XML- документу мы получим на экране следующий результат:

<

Содержание раздела