flashdocs.net: все о macromedia flash 5, mx, 2004 pro, 8. Обучение: flash статьи flash уроки flash исходники flash софт, faq, а также flash мульты и flash игры
Все о Macromedia Flash 8 mx 2004 pro! Все о Flash! Обучение flash уроки, flash статьи, flash исходники, flash soft, flash форум, flash документация и многое другое! Все что нужно будущему flasher.
     
 Навигация

Главная

:Обучение:

Статьи
Уроки
Исходники
Flash-Софт
FAQ

:Flash-развлечения:

Flash-игры
Flash-мульты



:Добавить на сайт:


Уроки
Исходники и Flash-soft
Новость
Ссылку
Мульт или игру


:Разделы:

Форум
Ссылки
Управление аккаунтом
Поиск

:Услуги сайта:

Платные услуги сайта
 Поиск
Поиск по сайту

 Баннеры

Вы можете разместить наш баннер на своем сайте. У нас есть баннеры различных размеров и форматов.

Пример

[ все баннеры ]
 Друзья
> Flash Blog
> Верстка и Дизайн
> Документация ко всему
> Flash-Город!
Pages

Использование XML

Использование объекта XML


Для обмена с серверным приложением данными в формате XML используется экземпляр объекта, который так и называется - xml. Он содержит набор методов, с помощью которых вы можете "собрать" из имеющихся данных документ XML или, наоборот, "разобрать" его по частям и извлечь хранящиеся в нем данные. Этот же объект может служить для обработки информации, хранящейся в файлах XML.

Прежде всего, вы должны создать экземпляр объекта xml:

myXML = new XML() ;

При создании экземпляра объекта вы можете передать конструктору в качестве параметра уже сформированный XML-код.

myXML = new XML("");

После этого вы можете добавлять во вновь созданный объект новые узлы.

Для добавления нового узла вы должны использовать метод createElement Этому методу передается один параметр - имя узла. Метод createEiement возвращает ссылку на экземпляр объекта xml, представляющий вновь созданный узел.

myNode = myXML.createElement("PRODUCT");

Для создания текстового узла вам нужно использовать метод сrеateTextNode и передать ему в качестве параметра текст, который станет со­держимым узла.

myTextNod

e = myXML.createTextNode("Лучшая программа векторной графики!")) Теперь следует добавить атрибуты узла. Для этого вам необходимо использовать внутренний объект - массив attributes. Просто присвойте нужному атрибуту требуемое значение, как вы делали это с массивами ранее.
myNode.attributes.PID = "FL";

myNode.attributes.PRNAME = "Flash";

Остается добавить созданные отдельные узлы в основной XML-документ Это делается с помощью метода appendchiid. Вызовите его у того экземп' ляра объекта xml, который должен стать родительским узлом. А в качестве параметра передайте этому методу ссылку на экземпляр объекта xml, представляющий дочерний узел.

myNode.appendChild(myTextNode);

Это выражение делает созданный нами текстовый узел дочерним по отношению к узлу .

myXML.appendChild (myNode);

А это выражение добавляет полученный нами ранее узел в пустой пока еще XML-документ. Содержимое этого документа станет таким:

Лучшая программа векторной ^графики!

Пользуясь методами createElemerit, createTextNode И appendChild, ВЫ сможете создавать XML-документы любой сложности. В качестве домашнего задания попробуйте написать сценарий, создающий документ, чей текст был приведен выше, при рассмотрении языка XML.

Чтобы отправить данные серверному приложению, используйте метод send. Формат его таков:

Экземпляр объекта ХМL>.send("<Интернет-адрес>"[, "<Цель>"]);

Первым параметром передается интернет-адрес серверного приложения, которое получит эти данные. Вторым параметром может быть передана цель, куда будет выведен результат обработки этих данных (как правило, Web-страница, сгенерированная серверной программой). Данные всегда передаются методом post.

myXML.send("http://site.ru/bin/xmlparser.exe") ;

Для приема данных от серверной программы используется метод load. Единственным параметром этого метода передается интернет-адрес сервер­ного приложения или файла, в котором хранится документ XML.

myXML.load("http://site.ru/bin/xrnlparser.exe");

Метод sendAndLoad одновременно отправляет данные и получает результат.

Экземпляр объекта XML>.sendAndLoad("<Интернет-адрес>",

Экземпляр объекта XML, принимающий данные>) ;

Первым параметром опять же передается интернет-адрес серверного приложения, которое получит эти данные. Вторым параметром передается ссылка на экземпляр объекта xml, который получит результат. Для отправки данных опять же используется метод post.

myXML.sendAndLoad("http://site.ru/bin/xrnlparser.exe", myXMLLoader) ;

Для того чтобы узнать, успешно ли получены данные, вам будет нужно обработать событие load объекта xml. Функция-обработчик этого события должна принимать один логический параметр, обозначающий, что данные успешно получены (значение true) или почему-то не дошли

(false). myXML. onLoad = function (flag) { . . .

Свойство loaded объекта xml возвращает true, если данные были успешно получены, или false в противном случае. Если операция приема данных не была запущена, возвращается значение undefined.

Свойства first-child и lastchild возвращают соответственно первый и последний дочерний узлы документа XML или его узла. Эти свойства доступны только для чтения.

dev = myXML.firstChild;

producti = dev.lastChild;

Для доступа к дочерним узлам вы можете использовать внутренний объект - массив childNodes.

nodes = new Array() ;

dev = myXML.firstChild;

for(i =0; i < dev. childNodes. length - 1; i++) {

nodes[i] = new Object();

nodes[i].pID = dev.childNodes[i].attributes.PID;

nodes[i].prName = dev.childNodes[i].attributes.PRNAME;

nodes[i].prDescription = dev.childNodes[i].firstChild.nodeValue;

В последнем выражении этого сценария мы применили свойство

firstchild, чтобы добраться до текстового узла, являющегося дочерним

по отношению к узлу . Можно также использовать массив

childNodes, обратившись к первому (точнее, нулевому) его элементу.

Сам текст, содержащийся в этом узле, мы получили с помощью свойства

nodeValue.

Метод hasChiidNodes возвращает true, если текущий узел имеет дочерние узлы, или false в противном случае. Этот метод не принимает параметров.

Свойство nextsibling возвращает ссылку на узел той же степени вложенности, что и текущий. Например, для нашего документа XML, чей текст мы привели в качестве примера при описании этого языка, узлами одинаковой степени вложенности являются узлы . А значит, для первого узла свойство nextsibling вернет ссылку на второй узел , для второго - на третий, а для третьего - значение null, т. к. больше узлов такой же степени вложенности нет.

Аналогично свойство previoussibling возвращает ссылку на предыдущий узел той же степени вложенности.

Свойства nodeName и nodeType возвращают соответственно имя и тип узла. Уже известное нам свойство nodeValue возвращает содержимое текстового узла, для обычных узлов оно возвращает null. Все эти три свойства доступны только для чтения.

И, наконец, не принимающий параметров метод toString возвращает текстовое представление документа XML. Этот метод вы можете использовать, например, для проверки правильности формирования документа

 



Автор: GRINDERS (перевел с англ.)

Дата публикации: 2004-09-16 (3170 Прочтено)

Остальные материалы раздела Использование XML
  • XML.attributes
  • XML.loaded
  • XML.load
  • Использование объекта XMLSocket
  • Вводный курс языка XML
  • Использование данных XML (введение)

    [ Назад | Начало ]

  • Created by GRINDERS © 2002
    Copyright © flashdocs.net 2002-2005
    Внимание! Материалы с нашего портала брать для своего сайта без разрешения главного администратора КАТЕГОРИЧЕСКИ ЗАПРЕЩАЕТСЯ!
    Портальная система edogs-nuke
    15 запросов к базе данных.
    Карта сайта, каталог сайтов

    Rambler's Top100