Главная / Action Script 3
Пакетflash.xml
Классpublic class XMLNode
НаследованиеXMLNode Inheritance Object
Подклассы XMLDocument

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс XMLNode представляет устаревший объект XML, который встречался в версии ActionScript 2.0, а в ActionScript 3.0 был переименован. В ActionScript 3.0 рекомендуется использовать новый класс XML верхнего уровня и ассоциируемые классы, поддерживающие E4X (ECMAScript для XML). Класс XMLNode является обратно совместимым.

Посмотреть примеры

См. также

XML
flash.xml.XMLDocument


Общедоступные свойства
 СвойствоОпределено
  attributes : Object
Объект, содержащий все атрибуты заданного экземпляра XMLNode.
XMLNode
  childNodes : Array
[только для чтения] Массив дочерних узлов указанного объекта XMLNode.
XMLNode
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  firstChild : XMLNode
Оценивает указанный объект XMLDocument и ссылается на первый дочерний узел в списке дочерних узлов узла-родителя.
XMLNode
  lastChild : XMLNode
Значение XMLNode, ссылающееся на последний узел того же уровня в списке дочерних узлов узла-родителя.
XMLNode
  localName : String
[только для чтения] Локальная часть имени узла XML.
XMLNode
  namespaceURI : String
[только для чтения] Если узел XML имеет префикс, то namespaceURI является значением объявления xmlns для этого префикса (URI), который обычно называется URI пространства имен.
XMLNode
  nextSibling : XMLNode
Значение XMLNode, ссылающееся на следующий узел того же уровня в списке дочерних узлов узла-родителя.
XMLNode
  nodeName : String
Строковое представление имени узла объекта XMLNode.
XMLNode
  nodeType : uint
Значение константы nodeType, XMLNodeType.ELEMENT_NODE для элемента XML либо XMLNodeType.TEXT_NODE для текстового узла.
XMLNode
  nodeValue : String
Значение узла объекта XMLDocument.
XMLNode
  parentNode : XMLNode
Значение XMLNode, указывающее на родительский узел заданного объекта XML, либо возвращающее null, если родительский узел отсутствует.
XMLNode
  prefix : String
[только для чтения] Префикс имени узла XML.
XMLNode
  previousSibling : XMLNode
Значение XMLNode, ссылающееся на предыдущий родственный элемент того же уровня в списке дочерних узлов узла-родителя.
XMLNode
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
  
XMLNode(type:uint, value:String)
Создает новый объект XMLNode.
XMLNode
  
Добавляет указанный узел к списку дочерних узлов объекта XML.
XMLNode
  
Формирует и возвращает новый узел XML того же типа, с тем же именем, значением и атрибутами, что и заданный объект XML.
XMLNode
  
Возвращает URI пространства имен, связанный с заданным префиксом узла.
XMLNode
  
Возвращает префикс, связанный с заданным URI пространства имен узла.
XMLNode
  
Показывает, есть ли у заданного объекта XMLNode дочерние узлы.
XMLNode
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
Добавляет новый дочерний узел в список дочерних узлов объекта XML перед узлом beforeNode.
XMLNode
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
  
Удаляет заданный объект XML из его родительского объекта.
XMLNode
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Вычисляет заданный объект XMLNode, формирует текстовое представление структуры XML, включая узел, его дочерние объекты и атрибуты, и возвращает результат в виде строки.
XMLNode
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
attributesсвойство
attributes:Object  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Объект, содержащий все атрибуты заданного экземпляра XMLNode. Объект XMLNode.attributes содержит по одной переменной для каждого атрибута экземпляра XMLNode. Так как эти переменные определены как часть объекта, они обычно принимаются за свойства объекта. Значение каждого атрибута хранится в соответствующем свойстве в виде строки. Например, если существует атрибут с именем color, значение этого атрибута можно получить, задав имя свойства color, как показано в следующем примере:

  var myColor:String = doc.firstChild.attributes.color
  



Реализация
    public function get attributes():Object
    public function set attributes(value:Object):void
childNodesсвойство 
childNodes:Array  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Массив дочерних узлов указанного объекта XMLNode. Каждый элемент массива является ссылкой на объект XMLNode, которым представлен дочерний узел. Это свойство типа "только для чтения", и его нельзя использовать для обработки дочерних узлов. Для обработки дочерних узлов пользуйтесь методами appendChild(), insertBefore() и removeNode().

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



Реализация
    public function get childNodes():Array

См. также

firstChildсвойство 
public var firstChild:XMLNode

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Оценивает указанный объект XMLDocument и ссылается на первый дочерний узел в списке дочерних узлов узла-родителя. Это свойство принимает значение null, если для узла не существует дочерних узлов. Это свойство не определено (имеет значение undefined), если узел является текстовым. Это свойство работает в режиме "только для чтения", его нельзя использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode().

См. также

lastChildсвойство 
public var lastChild:XMLNode

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Значение XMLNode, ссылающееся на последний узел того же уровня в списке дочерних узлов узла-родителя. Свойство XMLNode.lastChild принимает значение null, если для узла не существует дочерних узлов. Это свойство нельзя использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode().

См. также

localNameсвойство 
localName:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

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

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



Реализация
    public function get localName():String
namespaceURIсвойство 
namespaceURI:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

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

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

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



Реализация
    public function get namespaceURI():String

См. также

nextSiblingсвойство 
public var nextSibling:XMLNode

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Значение XMLNode, ссылающееся на следующий родственный элемент того же уровня в списке дочерних узлов узла-родителя. Это свойство принимает значение null, если для узла не существует следующего родственного элемента того же уровня. Это свойство нельзя использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode().

См. также

nodeNameсвойство 
public var nodeName:String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Строковое представление имени узла объекта XMLNode. Если объект XMLNode является элементом XML (nodeType == 1), nodeName — это имя метки, представляющей узел в XML-файле. Например, TITLE — это параметр nodeName метки TITLE в формате HTML. Если объект XMLNode является текстовым узлом (nodeType == 3), то nodeName принимает значение null.

См. также

nodeTypeсвойство 
public var nodeType:uint

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Значение константы 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. В следующей таблице приведены значения:

Целое значениеОпределенная константа
1ELEMENT_NODE
2ATTRIBUTE_NODE
3TEXT_NODE
4CDATA_SECTION_NODE
5ENTITY_REFERENCE_NODE
6ENTITY_NODE
7PROCESSING_INSTRUCTION_NODE
8COMMENT_NODE
9DOCUMENT_NODE
10DOCUMENT_TYPE_NODE
11DOCUMENT_FRAGMENT_NODE
12NOTATION_NODE

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

См. также

nodeValueсвойство 
public var nodeValue:String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Значение узла объекта XMLDocument. Если объект XMLDocument является текстовым узлом, значение nodeType — 3, а nodeValue — это текст узла. Если объект XMLDocument является элементом XML (nodeType имеет значение 1), то nodeValue принимает значение null и работает в режиме "только для чтения".

См. также

parentNodeсвойство 
public var parentNode:XMLNode

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Значение XMLNode, которое ссылается на родительский узел указанного объекта XML, либо возвращает значение null при отсутствии родителя для данного узла. Это свойство работает в режиме "только для чтения", его нельзя использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode().

См. также

prefixсвойство 
prefix:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

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

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



Реализация
    public function get prefix():String
previousSiblingсвойство 
public var previousSibling:XMLNode

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Значение XMLNode, ссылающееся на предыдущий родственный элемент того же уровня в списке дочерних узлов узла-родителя. Свойство имеет значение null, если для узла не существует предыдущего родственного элемента того же уровня. Это свойство нельзя использовать для обработки дочерних узлов. Для обработки дочерних узлов используйте методы appendChild(), insertBefore() и removeNode().

См. также

Сведения о конструкторе
XMLNode()Конструктор
public function XMLNode(type:uint, value:String)

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

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

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

Параметры
type:uint — Тип узла: 1 в случае элемента XML и 3 в случае текстового узла.
 
value:String — Текст XML разбирается, и в результате создается новый объект XMLNode.

См. также

Сведения о методе
appendChild()метод
public function appendChild(node:XMLNode):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Добавляет указанный узел к списку дочерних узлов объекта XML. Данный метод применяет непосредственно на узле, на который ссылается параметр childNode. Он не добавляет копию узла. Если добавляемый узел уже существует в другой древовидной структуре, при добавлении узла в новое местоположение он будет удален из текущего места. Если параметр childNode относится к узлу, который уже существует в другой древовидной структуре XML, добавляемый дочерний узел помещается в новое дерево после того, как он удаляется из текущего родительского узла.

Параметры

node:XMLNode — XMLNode, представляющий узел, который необходимо переместить из текущего местоположения в список дочерних узлов, объекта my_xml.

См. также

cloneNode()метод 
public function cloneNode(deep:Boolean):XMLNode

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Формирует и возвращает новый узел XML того же типа, с тем же именем, значением и атрибутами, что и заданный объект XML. При назначении параметру deep значения true все дочерние узлы рекурсивно клонируются, и в результате получается точная копия дерева документа объекта.

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

Параметры

deep:Boolean — Логическое значение: при значении true дочерние узлы указанного объекта XML рекурсивно клонируются.

Возвращает
XMLNode — Объект XMLNode.
getNamespaceForPrefix()метод 
public function getNamespaceForPrefix(prefix:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

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

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

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

Параметры

prefix:String — Префикс, для которого метод возвращает ассоциируемую область имен.

Возвращает
String — Область имен, ассоциируемая с указанным префиксом.

См. также

getPrefixForNamespace()метод 
public function getPrefixForNamespace(ns:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

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

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

Параметры

ns:String — URI области имен, для которого метод возвращает ассоциируемый префикс.

Возвращает
String — Префикс, ассоциируемый с указанной областью имен.

См. также

hasChildNodes()метод 
public function hasChildNodes():Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Показывает, есть ли у заданного объекта XMLNode дочерние узлы. Данное свойство принимает значение true, если у объекта XMLNode есть дочерние узлы, в остальных случаях — значение false.

Возвращает
Boolean — Возвращает значение true, если у указанного объекта XMLNode есть дочерние узлы, в остальных случаях возвращает false.
insertBefore()метод 
public function insertBefore(node:XMLNode, before:XMLNode):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Добавляет новый дочерний узел в список дочерних узлов объекта XML перед узлом beforeNode. Если параметр beforeNode не определен или имеет значение null, узел добавляется с помощью метода appendChild(). Если beforeNode не является дочерним узлом my_xml, добавление не выполняется.

Параметры

node:XMLNode — Объект XMLNode, который необходимо добавить.
 
before:XMLNode — Объект XMLNode до точки добавления childNode.

См. также

removeNode()метод 
public function removeNode():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Удаляет заданный объект XML из его родительского объекта. Также удаляет всех потомков узла.

toString()метод 
public function toString():String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Вычисляет заданный объект XMLNode, формирует текстовое представление структуры XML, включая узел, его дочерние объекты и атрибуты, и возвращает результат в виде строки.

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

Возвращает
String — Строка, представляющая объект XMLNode.

См. также

Примеры Как пользоваться примерами
XMLDocumentExample.as

В следующем примере показано, как классы 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";
    }
}