XML DOM

Рубрика: Язык разметки XML

Здравствуйте, уважаемые читатели блога okITgo.ru! Тема моей очередной публикации – Объектная Модель Документа – DOM (Document Object Model) – модель, которая определяет стандартный способ для доступа и манипулирования документами.


XML DOM

Соответственно, XML DOM определяет стандартный способ для доступа и манипулирования XML документами.

XML DOM рассматривает XML документ как древовидную структуру.

Через дерево объектной модели DOM можно получить доступ ко всем элементам. Их содержимое (текст и атрибуты) можно изменить или удалить, новые элементы также могут быть созданы. Элементы, текст в этих элементах, их атрибуты – все они является узлами.


HTML DOM

HTML DOM определяет стандартный способ для доступа и манипулирования HTML документами.

Посредством HTML DOM можно получить доступ ко всем HTML элементам.

Вы можете узнать подробнее об объектной модели HTML DOM, изучив Уроки HTML DOM.


Загрузка XML Файла – Кросс-браузерный Пример

Следующий пример разбирает XML документ ("note.xml") и превращает его в объект XML DOM, а затем извлекает из него некоторую информацию, используя JavaScript:

Пример

<html>
<body>
<h1>Записка</h1>
<div>
<b>Кому:</b> <span id="to"></span>
<b>От кого:</b> <span id="from"></span>
<b>Сообщение:</b> <span id="message"></span>
</div>

<script type="text/javascript">
if (window.XMLHttpRequest)
  {// код для IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// код для IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>

</body>
</html>

Попробуйте сами »



Важное Замечание!

Чтобы извлечь текст "Вася" из элемента <to> в XML файле выше
("note.xml"), используется синтаксис:

getElementsByTagName("to")[0].childNodes[0].nodeValue

Заметьте, что даже если XML файл содержит
только ОДИН элемент <to>, Вы по-прежнему должны указывать индекс массива [0]. Это связано с тем, что метод getElementsByTagName() возвращает массив.


Загрузка XML Строки – Кросс-браузерный Пример

Следующий пример разбирает XML строку в объект XML DOM и затем
извлекает некоторую информацию из него посредством скрипта JavaScript:

Пример

<html>
<body>
<h1>Записка</h1>
<div>
<b>Кому:</b> <span id="to"></span>
<b>От кого:</b> <span id="from"></span>
<b>Сообщение:</b> <span id="message"></span>
</div>

<script>
txt="<note>"+
"<to>Вася</to>"+
"<from>Света</from>"+
"<heading>Напоминание</heading>"+
"<body>Позвони мне завтра!</body>"+
"</note>";

if (window.DOMParser)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
  }
else // Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(txt);
  }

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>

Попробуйте сами »

Попробовали :-)? Если что непонятно – спрашивайте, с радостью отвечу. Удачи Вам и до новых встреч на страницах сайта okITgo.ru.