<HTML><HEAD><TITLE>Отображение 1 и 5 элементов XML-документа</TITLE>
</HEAD><BODY>
<H2>1 и 5 элементы XML-документа</H2>
<XML ID="dsoBook" SRC="book.xml"></XML>
<SCRIPT LANGUAGE="JavaScript">
var Doc = dsoBook;
document.write ("Заголовок: " + Doc.documentElement.childNodes(0).text + "<BR>");
document.write ("Цена: " + Doc.documentElement.childNodes(4).text);
</SCRIPT>
</BODY></HTML>
Объяснение примера 1:
Doc = dsoBook; |
Сценарий получает узел Document через идентификатор ID=”dsoBook” из Data Islands <XML>…</XML> |
Doc |
Содержит корневой узел Document в иерархии узлов DOM |
documentElement |
Свойство узла Document содержит узел Element, который является корневым элементом XML-документа |
childNodes(4) |
Свойство узла Element (для корневого элемента) содержит множество всех дочерних узлов (title, price и пр.), не являющихся атрибутами. Нумерация дочерних узлов начинается с 0. |
text |
Содержит текст элемента и тексты всех его дочерних элементов |
document.write |
Применить метод write по отношению к текущему документу |
Хотя выражение Doc.childNodes(2) и обеспечивает доступ к узлу корневого документа (при наличии комментария в XML-документе), но нет гарантии, что комментарий имеется... |
<HTML><HEAD><TITLE>Список книг</TITLE>
<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD">
var HTMLCode = "";
var Doc = dsoBook;
for (i=0; i < Doc.documentElement.childNodes.length; i++)
{
HTMLCode = HTMLCode + "<SPAN STYLE='font-style:italic'>Наименование: </SPAN>"
+ Doc.documentElement.childNodes(i).childNodes(0).text + "<BR>"
+ "<SPAN STYLE='font-style:italic'>Цена: </SPAN>"
+ Doc.documentElement.childNodes(i).childNodes(4).text + "<P>";
}
DisplayDIV.innerHTML=HTMLCode;
</SCRIPT>
</HEAD>
<BODY>
<XML ID="dsoBook" SRC="book2.xml"></XML>
<H2>Список книг</H2>
<DIV ID="DisplayDIV"></DIV>
</BODY></HTML>
Объяснение примера 2:
Doc.documentElement.childNodes.length; |
Свойство length (количество элементов внутри корневого элемента) является членом группового объекта NodeList, которое предоставляется свойством childNodes узла корневого элемента |
DisplayDIV.innerHTML=HTMLCode; |
Присвоить HTML-разметку (накопленную в переменной HTMLCode) свойству innerHTML элемента DIV (имеет ID="DisplayDIV") раздела BODY страницы |
<HTML><HEAD><TITLE>Поиск элемента</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function ShowElements()
{if (ElementName.value == "")
{ResultDiv.innerText = "<Укажите имя элемента>";return;}
Doc = dsoXML.XMLDocument;
NodeList = Doc.getElementsByTagName (ElementName.value);
ResultHTML = "";
for (i=0; i < NodeList.length; ++i) ResultHTML += NodeList(i).xml + "\n\n";
if (ResultHTML == "") ResultDiv.innerText = "<такой элемент отсутствует>";
else ResultDiv.innerText = ResultHTML;}
</SCRIPT></HEAD><BODY>
<XML ID="dsoXML" SRC="book2.xml"></XML>
<H2>Поиск элемента по его имени</H2>
Укажите имя элемента: <INPUT TYPE="TEXT" ID="ElementName"> 
<BUTTON ONCLICK="ShowElements()">Показать элемент</BUTTON>
<HR>
<DIV ID=ResultDiv></DIV>
</BODY></HTML>
Объяснение примера 3:
<INPUT
TYPE="TEXT" ID="ElementName">  |
При нажатии на кнопку "Показать элемент" вызывается SCRIPT-функция ShowElements |
NodeList(i).xml |
Использовать свойство xml для отображения XML-разметки всех элементов документа с заданным именем |
<!-- File Name: Validity Test.htm -->
<HTML><HEAD><TITLE>Тест валидности XML-документа</TITLE>
<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD">
Doc = dsoTest.XMLDocument;
if (Doc.readyState == 4) DisplayError ();
else Doc.onreadystatechange = DisplayError;
function DisplayError ()
{
if (Doc.readyState != 4) return;
message = "Код ошибки: " + Doc.parseError.errorCode + "\n"
+ "Номер символа в файле: " + Doc.parseError.filepos + "\n"
+ "Номер строки: " + Doc.parseError.line + "\n"
+ "Номер символа в строке: " + Doc.parseError.linepos + "\n"
+ "Причина ошибки: " + Doc.parseError.reason + "\n"
+ "Текст строки: " + Doc.parseError.srcText + "\n"
+ "URL XML-файла: " + Doc.parseError.url;
alert (message);
}
</SCRIPT>
</HEAD><BODY>
<!--В атрибуте SRC укажите значение URL проверяемого на валидность XML-документа:-->
<XML ID="dsoTest" SRC="N_A_M_E__F_I_L_E.xml"></XML>
</BODY></HTML>
Броузер отображает пустой экран, если связанный XML-документ имеет ошибки (XML-данные будут недоступны) или броузер завершил обработку XML-документа раньше, чем сценарий SCRIPT обратился к XML-данным. |
HTML-страница сообщает с помощью свойств DOM о первой ошибке корректности (целостности) форм открываемого XML-документа. А если в документе включено объявление типа документа DTD, то сообщает и о ошибке валидности. |
Таким образом сценарий может узнать о завершении процесса загрузки и обработки XML-документа (целесообразно использовать при создании полноценных HTML-страниц). |
if
(Doc.readyState == 4) DisplayError (); |
Если значение свойства readyState узла Document равно 4 (XML-данные загружены и обработаны), то выполняется функция индикации ошибки DisplayError. В противном случае сценарий присваивает свойству onreadystatechange узла Document функцию DisplayError (это обеспечит вызов броузером функции DisplayError позднее, когда изменится значение readyState) |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.