flash.xmlXMLNode Класс XMLNode представляет устаревший объект XML, который использовался в ActionScript 2.0 и был переименован в ActionScript 3.0.Object Класс XMLNode представляет устаревший объект XML, который использовался в ActionScript 2.0 и в ActionScript 3.0 был переименован. Вместо него в ActionScript 3.0 следует использовать новый XML-класс верхнего уровня и связанные классы с поддержкой E4X (ECMAScript для XML). Класс XMLNode является обратно совместимым. В следующем примере показано, как классы XMLDocument и XMLNode используются для разбора и форматирования XML-документа. Вместо загрузки внешнего XML-файла для создания и разбора XML-документа используется класс XML верхнего уровня. package { import flash.display.Sprite; import flash.xml.XMLDocument; import flash.xml.XMLNode; import flash.xml.XMLNodeType; public class XMLDocumentExample extends Sprite { public function XMLDocumentExample() { var result:XMLDocument = new XMLDocument(); result.ignoreWhite = true; result.parseXML(getXMLString()); var books:Array = parseBooks(result.firstChild); trace("books: \n" + books); } private function parseBooks(node:XMLNode):Array { var books:Array = new Array(); var kids:Array = node.childNodes; for each(var item:XMLNode in kids) { parseBook(item, books); } return books; } private function parseBook(node:XMLNode, books:Array):void { var item:Book = new Book(); item.setPublisher(node.attributes.publisher); item.setName(node.attributes.name); books.push(item); } private function getXMLString():String { var list:XML = <books> <book publisher="Addison-Wesley" name="Design Patterns" /> <book publisher="Addison-Wesley" name="The Pragmatic Programmer" /> <book publisher="Addison-Wesley" name="Test Driven Development" /> <book publisher="Addison-Wesley" name="Refactoring to Patterns" /> <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" /> <book publisher="O'Reilly Media" name="Unit Test Frameworks" /> </books>; return list.toXMLString(); } } } class Book { private var publisher:String; private var name:String; public function setPublisher(publisher:String):void { this.publisher = publisher; } public function setName(name:String):void { this.name = name; } public function toString():String { return "[Book name: " + name + " publisher: " + publisher + "]\n"; } } XMLflash.xml.XMLDocumentXMLNode Создает новый объект XMLNode.typeuintТип узла: 1 в случае элемента XML и 3 в случае текстового узла. valueStringТекст XML разбирается, и в результате создается новый объект XMLNode. Создает новый объект XMLNode. Для создания объекта XMLNode следует использовать конструктор перед вызовом каких-либо методов класса XMLNode.

Примечание. Пользуйтесь методами createElement() и createTextNode() для добавления элементов и текстовых узлов в дерево XML-документа.

XMLDocument.createElement()XMLDocument.createTextNode()
appendChild Добавляет указанный узел к списку дочерних узлов объекта XML.nodeflash.xml:XMLNodeXMLNode, представляющий узел, который необходимо переместить из текущего местоположения в список дочерних узлов объекта my_xml. Добавляет указанный узел к списку дочерних узлов объекта XML. Данный метод применяется непосредственно на узле, на который ссылается параметр childNode. Он не добавляет копию узла. Если добавляемый узел уже существует в другой древовидной структуре, при добавлении узла в новое местоположение он будет удален из текущего места. Если параметр childNode относится к узлу, который уже существует в другой древовидной структуре XML, добавляемый дочерний узел помещается в новое дерево после того, как он удаляется из текущего родительского узла. cloneNode Формирует и возвращает новый узел XML того же типа, с тем же именем, значением и атрибутами, что и заданный объект XML.Объект XMLNode. flash.xml:XMLNodedeepBooleanЛогическое значение: при значении true дочерние узлы указанного объекта XML рекурсивно клонируются. Формирует и возвращает новый узел XML того же типа, с тем же именем, значением и атрибутами, что и заданный объект XML. При назначении параметру deep значения true все дочерние узлы рекурсивно клонируются, и в результате получается точная копия дерева документа объекта.

Клон возвращаемого узла более не связан с деревом клонированного элемента. Следовательно, nextSibling, parentNode и previousSibling принимают значение null. Если параметр deep имеет значение false или узел my_xml не имеет дочерних узлов, firstChild и lastChild также принимают значение null.

getNamespaceForPrefix Возвращает URI пространства имен, связанный с заданным префиксом узла.Область имен, ассоциируемая с указанным префиксом. StringprefixStringПрефикс, для которого метод возвращает ассоциируемую область имен. Возвращает URI пространства имен, связанный с заданным префиксом узла. Для определения URI getPrefixForNamespace() производит поиск в иерархии XML от узла (по мере необходимости) и возвращает URI области имен первого определения xmlns для данного prefix.

Если область имен не определена ля указанного префикса, метод возвращает значение null.

Если в качестве prefix указана пустая строка (""), а для узла определена область имен по умолчанию (как, например, здесь: xmlns="http://www.example.com/"), метод возвращает URI области имен по умолчанию.

XMLNode.getPrefixForNamespace()XMLNode.namespaceURI
getPrefixForNamespace Возвращает префикс, связанный с заданным URI пространства имен узла.Префикс, ассоциируемый с указанной областью имен. StringnsStringURI области имен, для которого метод возвращает ассоциируемый префикс. Возвращает префикс, связанный с заданным URI пространства имен узла. Для определения префикса getPrefixForNamespace() производит поиск в иерархии XML от узла (по мере необходимости) и возвращает префикс первого определения xmlns с URI области имен, соответствующим ns.

Если для данного URI не задан xmlns, метод возвращает null. Если данному URI присвоен xmlns, но с этим присваиванием не ассоциирован префикс, метод возвращает пустую строку ("").

XMLNode.getNamespaceForPrefix()XMLNode.namespaceURI
hasChildNodes Показывает, есть ли у заданного объекта XMLNode дочерние узлы.Возвращает значение true, если у указанного объекта XMLNode есть дочерние узлы, в остальных случаях возвращает false. Boolean Показывает, есть ли у заданного объекта XMLNode дочерние узлы. Данное свойство принимает значение true, если у объекта XMLNode есть дочерние узлы, в остальных случаях — значение false. insertBefore Добавляет новый дочерний узел в список дочерних узлов объекта XML перед узлом beforeNode.nodeflash.xml:XMLNodeОбъект XMLNode, который необходимо добавить. beforeflash.xml:XMLNodeОбъект XMLNode до точки добавления childNode. Добавляет новый дочерний узел в список дочерних узлов объекта XML перед узлом beforeNode. Если параметр beforeNode не определен или имеет значение null, узел добавляется с помощью метода appendChild(). Если beforeNode не является дочерним узлом my_xml, добавление не выполняется. XMLNode.cloneNode()removeNode Удаляет заданный объект XML из его родительского объекта. Удаляет заданный объект XML из его родительского объекта. Также удаляет всех потомков узла. toString Вычисляет заданный объект XMLNode, формирует текстовое представление структуры XML, включая узел, его дочерние объекты и атрибуты, и возвращает результат в виде строки.Строка, представляющая объект XMLNode. String Вычисляет заданный объект XMLNode, формирует текстовое представление структуры XML, включая узел, его дочерние объекты и атрибуты, и возвращает результат в виде строки.

При работе с объектами XMLDocument верхнего уровня (созданными с помощью конструктора) метод XMLDocument.toString() выводит объявление документа XML (хранится в свойстве XMLDocument.xmlDecl) перед объявлением DOCTYPE документа (хранится в свойстве XMLDocument.docTypeDecl) и перед текстовым представлением всех узлов XML в объекте. XML-объявление не выводится, если свойство XMLDocument.xmlDecl имеет значение null. Декларация DOCTYPE не выводится, если свойство XMLDocument.docTypeDecl имеет значение null.

XMLDocument.docTypeDeclXMLDocument.xmlDecl
firstChild Оценивает указанный объект XMLDocument и ссылается на первый дочерний узел в списке дочерних узлов родительского узла.flash.xml:XMLNode Оценивает указанный объект XMLDocument и ссылается на первый дочерний узел в списке дочерних узлов родительского узла. Это свойство принимает значение null, если для узла не существует дочерних узлов. Это свойство не определено (имеет значение undefined), если узел является текстовым. Это свойство работает в режиме только для чтения, его невозможно использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode(). XMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()lastChild Значение XMLNode, ссылающееся на последний узел того же уровня в списке дочерних узлов вышестоящего узла.flash.xml:XMLNode Значение XMLNode, ссылающееся на последний узел того же уровня в списке дочерних узлов вышестоящего узла. Свойство XMLNode.lastChild принимает значение null, если для узла не существует дочерних узлов. Это свойство невозможно использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode(). XMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()nextSibling Значение XMLNode, ссылающееся на следующий родственный элемент того же уровня в списке дочерних узлов родительского узла.flash.xml:XMLNode Значение XMLNode, ссылающееся на следующий родственный элемент того же уровня в списке дочерних узлов родительского узла. Это свойство принимает значение null, если для узла не существует следующего родственного элемента того же уровня. Это свойство невозможно использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode(). XMLNode.firstChildXMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()nodeName Строковое представление имени узла объекта XMLNode.String Строковое представление имени узла объекта XMLNode. Если объект XMLNode является элементом XML (nodeType == 1), nodeName — это имя метки, представляющей узел в XML-файле. Например, TITLE — это параметр nodeName метки TITLE в формате HTML. Если объект XMLNode является текстовым узлом (nodeType == 3), то nodeName принимает значение null. XMLNode.nodeTypenodeType Значение константы nodeType: XMLNodeType.ELEMENT_NODE в случае элемента XML или XMLNodeType.TEXT_NODE в случае текстового узла.uint Значение константы nodeType: XMLNodeType.ELEMENT_NODE в случае элемента XML или XMLNodeType.TEXT_NODE в случае текстового узла.

nodeType является числовой величиной, которая определена списком NodeType, приведенным в рекомендации W3C DOM для Уровня 1: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html. В следующей таблице приведены значения:

4CDATA_SECTION_NODEЦелое значениеОпределенная константа1ELEMENT_NODE3TEXT_NODE5ENTITY_REFERENCE_NODE7PROCESSING_INSTRUCTION_NODE9DOCUMENT_NODE11DOCUMENT_FRAGMENT_NODE

Встроенный в программу Flash Player класс XMLNode поддерживает только значения XMLNodeType.ELEMENT_NODE и XMLNodeType.TEXT_NODE.

XMLNodeType.TEXT_NODEXMLNodeType.ELEMENT_NODE
nodeValue Значение узла объекта XMLDocument.String Значение узла объекта XMLDocument. Если объект XMLDocument является текстовым узлом, значение nodeType — 3, а nodeValue — это текст узла. Если объект XMLDocument является элементом XML (nodeType имеет значение 1), то nodeValue принимает значение null и работает в режиме только для чтения. XMLNode.nodeTypeparentNode Значение XMLNode, которое ссылается на родительский узел указанного объекта XML, либо возвращает значение null при отсутствии родительского узла для данного узла.flash.xml:XMLNode Значение XMLNode, которое ссылается на родительский узел указанного объекта XML, либо возвращает значение null при отсутствии родительского узла для данного узла. Это свойство работает в режиме только для чтения, его невозможно использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode(). XMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()previousSibling Значение XMLNode, ссылающееся на предыдущий родственный элемент того же уровня в списке дочерних узлов родительского узла.flash.xml:XMLNode Значение XMLNode, ссылающееся на предыдущий родственный элемент того же уровня в списке дочерних узлов родительского узла. Свойство имеет значение null, если для узла не существует предыдущего родственного элемента того же уровня. Это свойство невозможно использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode(). XMLNode.lastChildXMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()attributes Объект, содержащий все атрибуты заданного экземпляра XMLNode.Object Объект, содержащий все атрибуты заданного экземпляра XMLNode. Объект XMLNode.attributes содержит по одной переменной для каждого атрибута экземпляра XMLNode. Так как эти переменные определены как часть объекта, они обычно принимаются за свойства объекта. Значение каждого атрибута хранится в соответствующем свойстве в виде строки. Например, если существует атрибут с именем color, значение этого атрибута можно получить, задав имя свойства color, как показано в следующем примере:
	 var myColor:String = doc.firstChild.attributes.color
	 
childNodes Массив дочерних узлов указанного объекта XMLNode.Array Массив дочерних узлов указанного объекта XMLNode. Каждый элемент массива является ссылкой на объект XMLNode, которым представлен дочерний узел. Это свойство типа только для чтения, и его невозможно использовать для обработки дочерних узлов. Для обработки дочерних узлов пользуйтесь методами appendChild(), insertBefore() и removeNode().

Данное свойство не определено для текстовых узлов (nodeType == 3).

XMLNode.nodeTypeXMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()
localName Локальная часть имени узла XML.String Локальная часть имени узла XML. Это имя элемента без префикса области имен. Например, у узла <contact:mailbox/>ivan@example.ru</contact:mailbox> есть локальное имя mailbox и префикс contact, которые составляют полное имя элемента contact.mailbox.

Префикс области имен доступен через свойство prefix объекта узла XML. Свойство nodeName возвращает полное имя (включая префикс и локальное имя).

namespaceURI Если у узла XML есть префикс, namespaceURI является значением объявления xmlns для этого префикса (URI), который обычно называют URI области имен.StringURI области имен, к которому относится префикс узла XML. Если у узла XML есть префикс, namespaceURI является значением объявления xmlns для этого префикса (URI), который обычно называют URI области имен. Объявление xmlns содержится в текущем узле или в узле, расположенном выше в иерархии XML.

Если у узла XML нет префикса, значение свойства namespaceURI зависит от того, определена ли области имен по умолчанию (как в примере xmlns="http://www.example.com/"). Если существует область имен по умолчанию, значение свойства namespaceURI является значением области имен по умолчанию. Если области имен по умолчанию не существует, свойство namespaceURI для этого узла будет пустой строкой ("").

Можно использовать метод getNamespaceForPrefix() для определения области имен, ассоциируемой с конкретным префиксом. Свойство namespaceURI возвращает префикс, ассоциируемый с именем узла.

getNamespaceForPrefix()getPrefixForNamespace()
prefix Префикс имени узла XML.String Префикс имени узла XML. Например, узел <contact:mailbox/>ivan@example.ru</contact:mailbox>, префикс contact и локальное имя mailbox, которые составляют полное имя элемента contact.mailbox.

Свойство nodeName объекта узла XML возвращает полное имя (включая префикс и локальное имя). Локальная часть имени элемента доступна через свойство localName.

XMLNodeType Класс XMLNodeType содержит константы, используемые с XMLNode.nodeType.Object Класс XMLNodeType содержит константы, используемые с XMLNode.nodeType. Значения определяются списком NodeType, приведенным в рекомендации W3C DOM для Уровня 1: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html XMLNode.nodeTypeELEMENT_NODE Показывает, что узел является элементом.1uint Показывает, что узел является элементом. Эта константа используется с XMLNode.nodeType. Значения определяются списком NodeType, приведенным в рекомендации W3C DOM для Уровня 1: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html XMLNode.nodeTypeTEXT_NODE Показывает, что узел является текстовым узлом.3uint Показывает, что узел является текстовым узлом. Эта константа используется с XMLNode.nodeType. Значения определяются списком NodeType, приведенным в рекомендации W3C DOM для Уровня 1: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html XMLNode.nodeTypeXMLDocument Класс XMLDocument представляет устаревший объект XML, который использовался в ActionScript 2.0.flash.xml:XMLNode Класс XMLDocument представляет устаревший объект XML, который использовался в ActionScript 2.0. В ActionScript 3.0 он был переименован в XMLDocument во избежание конфликтов имен с новым XML-классом ActionScript 3.0. В ActionScript 3.0 рекомендуется использовать новый XML-класс и связанные классы, поддерживающие E4X (ECMAScript для XML).

Класс XMLDocument, как и XMLNode и XMLNodeType, является обратно совместимым. Функциональность для загрузки XML-документов теперь содержится в классе URLLoader.

В следующем примере показано, как классы XMLDocument и XMLNode используются для разбора и форматирования XML-документа. Вместо загрузки внешнего XML-файла для создания и разбора XML-документа используется класс XML верхнего уровня. package { import flash.display.Sprite; import flash.xml.XMLDocument; import flash.xml.XMLNode; import flash.xml.XMLNodeType; public class XMLDocumentExample extends Sprite { public function XMLDocumentExample() { var result:XMLDocument = new XMLDocument(); result.ignoreWhite = true; result.parseXML(getXMLString()); var books:Array = parseBooks(result.firstChild); trace("books: \n" + books); } private function parseBooks(node:XMLNode):Array { var books:Array = new Array(); var kids:Array = node.childNodes; for each(var item:XMLNode in kids) { parseBook(item, books); } return books; } private function parseBook(node:XMLNode, books:Array):void { var item:Book = new Book(); item.setPublisher(node.attributes.publisher); item.setName(node.attributes.name); books.push(item); } private function getXMLString():String { var list:XML = <books> <book publisher="Addison-Wesley" name="Design Patterns" /> <book publisher="Addison-Wesley" name="The Pragmatic Programmer" /> <book publisher="Addison-Wesley" name="Test Driven Development" /> <book publisher="Addison-Wesley" name="Refactoring to Patterns" /> <book publisher="O'Reilly Media" name="The Cathedral & the Bazaar" /> <book publisher="O'Reilly Media" name="Unit Test Frameworks" /> </books>; return list.toXMLString(); } } } class Book { private var publisher:String; private var name:String; public function setPublisher(publisher:String):void { this.publisher = publisher; } public function setName(name:String):void { this.name = name; } public function toString():String { return "[Book name: " + name + " publisher: " + publisher + "]\n"; } }
flash.net.URLLoaderКласс XMLXMLDocument Создает новый объект XMLDocument.sourceStringnullТекст XML разбирается, и в результате создается новый объект XMLDocument. Создает новый объект XMLDocument. Для создания объекта XMLDocument следует использовать конструктор, прежде чем вызывать какие-либо методы класса XMLDocument.

Примечание. Пользуйтесь методами createElement() и createTextNode() для добавления элементов и текстовых узлов в дерево XML-документа.

XMLDocument.createElement()XMLDocument.createTextNode()
createElement Создает новый объект XMLNode с именем, заданным параметром.Объект XMLNode. flash.xml:XMLNodenameStringИмя метки создаваемого элемента XMLDocument. Создает новый объект XMLNode с именем, заданным параметром. Для нового узла изначально не существует родительских и дочерних узлов и родственных элементов того же уровня. Метод возвращает ссылку на вновь созданный объект XMLNode, которым представлен элемент. Этот метод и метод XMLDocument.createTextNode() являются методами-конструкторами для создания узлов объекта XMLDocument. XMLDocument.createTextNode()createTextNode Создает новый текстовый узел XML с заданным текстом.Объект XMLNode. flash.xml:XMLNodetextStringТекст для создания нового текстового узла. Создает новый текстовый узел XML с заданным текстом. Для нового узла изначально не существует родительских узлов, а у текстового узла не может быть дочерних узлов или родственных элементов того же уровня. Этот метод возвращает ссылку на объект XMLDocument, которым представлен текстовый узел. Этот метод и метод XMLDocument.createElement() являются методами-конструкторами для создания узлов объекта XMLDocument. XMLDocument.createElement()parseXML Разбирает текст XML, указанный в параметре value, и формирует в объекте XMLDocument получившееся дерево XML.sourceStringТекст XML для разбора и передачи указанному объекту XMLDocument. Разбирает текст XML, указанный в параметре value, и формирует в объекте XMLDocument получившееся дерево XML. Все существующие деревья в объекте XMLDocument отбрасываются. toString Возвращает строковое представление объекта XML.Строковое представление объекта XML. String Возвращает строковое представление объекта XML. docTypeDecl Показывает сведения об объявлении DOCTYPE для XML-документа.nullObject Показывает сведения об объявлении DOCTYPE для XML-документа. После разбора текста XML и преобразования его в объект XMLDocument свойство XMLDocument.docTypeDecl объекта XMLDocument получает текст объявления DOCTYPE XML-документа (например, <!DOCTYPE greeting SYSTEM "hello.dtd">). Это свойство задается с помощью строкового представления объявления DOCTYPE, а не с помощью объекта XMLNode.

Синтаксический анализатор XML, встречающийся в предыдущих версиях ActionScript, не проверяет достоверность документа. Объявление DOCTYPE считывается анализатором и сохраняется в свойстве XMLDocument.docTypeDecl, но проверка описания типа документа (DTD) при этом не выполняется.

Если в ходе разбора не удается обнаружить объявление DOCTYPE, свойство XMLDocument.docTypeDecl принимает значение null. Метод XML.toString() выводит содержимое XML.docTypeDecl сразу после XML-объявления, сохраняемого в XML.xmlDecl, и перед любым другим текстом в объекте XML. Если XMLDocument.docTypeDecl имеет значение null, объявление DOCTYPE не выводится.

idMap Объект, содержащий узлы XML, которым присвоен атрибут id.unknownObject Объект, содержащий узлы XML, которым присвоен атрибут id. Имена свойств объекта (каждое из которых содержит узел) совпадают со значениями атрибутов id.

Рассмотрим следующий объект XMLDocument:

<employee id='41'> <name> John Doe </name> <address> 601 Townsend St. </address> </employee> <employee id='42'> <name> Jane Q. Public </name> </employee> <department id="IT"> Information Technology </department>

В данном примере свойство idMap объекта XMLDocument является объектом с тремя свойствами: 41, 42 и IT. Каждое из этих свойств является объектом XMLNode с подходящим значением id. Например, свойство IT объекта idMap является этим узлом:

<department id="IT"> Information Technology </department>

Для создания экземпляра свойства idMap к объекту XMLDocument необходимо применить метод parseXML().

Если объектов XMLNode с одинаковым значением id более одного, подходящим свойством объекта idNode будет это же свойство последнего разобранного узла. Например:

var x1:XML = new XMLDocument("<a id='1'><b id='2' /><c id='1' /></a>"); x2 = new XMLDocument(); x2.parseXML(x1); trace(x2.idMap['1']); Это выведет узел <c>: <c id='1' />
ignoreWhite Если установлено значение true, текстовые узлы, содержащие только пробелы, при разборе игнорируются.falseBoolean Если установлено значение true, текстовые узлы, содержащие только пробелы, при разборе игнорируются. Текстовые узлы, начинающиеся или заканчивающиеся пробелом, не затрагиваются. Параметр по умолчанию — false.

Можно назначить свойство ignoreWhite отдельным объектам XMLDocument, как показано в примере:

my_xml.ignoreWhite = true;
xmlDecl Строка, задающая информацию о XML-объявлении в документе.nullObject Строка, задающая информацию о XML-объявлении в документе. После разбора XML-документа и преобразования в объект XMLDocument то свойство устанавливается для XML-объявления в документе. Это свойство задается с помощью строкового представления XML-объявления, а не с помощью объекта XMLNode. Если в ходе разбора не удается обнаружить XML-объявление, свойство принимает значение null. Метод XMLDocument.toString() выводит содержимое свойства XML.xmlDecl выше любого другого текста объекта XML. Если свойство XML.xmlDecl содержит значение null, XML-объявление не выводится.