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

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

Класс 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.

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

См. также

flash.net.URLLoader
Класс XML


Общедоступные свойства
 СвойствоОпределено
 Inheritedattributes : Object
Объект, содержащий все атрибуты заданного экземпляра XMLNode.
XMLNode
 InheritedchildNodes : Array
[только для чтения] Массив дочерних узлов указанного объекта XMLNode.
XMLNode
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  docTypeDecl : Object = null
Показывает сведения об определении DOCTYPE для XML-документа.
XMLDocument
 InheritedfirstChild : XMLNode
Оценивает указанный объект XMLDocument и ссылается на первый дочерний узел в списке дочерних узлов узла-родителя.
XMLNode
  idMap : Object
Объект, содержащий те узлы XML, которым присвоен идентификатор.
XMLDocument
  ignoreWhite : Boolean = false
При значении true текстовые узлы, содержащие только пробелы, пропускаются в процессе анализа.
XMLDocument
 InheritedlastChild : XMLNode
Значение XMLNode, ссылающееся на последний узел того же уровня в списке дочерних узлов узла-родителя.
XMLNode
 InheritedlocalName : String
[только для чтения] Локальная часть имени узла XML.
XMLNode
 InheritednamespaceURI : String
[только для чтения] Если узел XML имеет префикс, то namespaceURI является значением объявления xmlns для этого префикса (URI), который обычно называется URI пространства имен.
XMLNode
 InheritednextSibling : XMLNode
Значение XMLNode, ссылающееся на следующий узел того же уровня в списке дочерних узлов узла-родителя.
XMLNode
 InheritednodeName : String
Строковое представление имени узла объекта XMLNode.
XMLNode
 InheritednodeType : uint
Значение константы nodeType, XMLNodeType.ELEMENT_NODE для элемента XML либо XMLNodeType.TEXT_NODE для текстового узла.
XMLNode
 InheritednodeValue : String
Значение узла объекта XMLDocument.
XMLNode
 InheritedparentNode : XMLNode
Значение XMLNode, указывающее на родительский узел заданного объекта XML, либо возвращающее null, если родительский узел отсутствует.
XMLNode
 Inheritedprefix : String
[только для чтения] Префикс имени узла XML.
XMLNode
 InheritedpreviousSibling : XMLNode
Значение XMLNode, ссылающееся на предыдущий родственный элемент того же уровня в списке дочерних узлов узла-родителя.
XMLNode
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  xmlDecl : Object = null
Строка, задающая информацию об определении XML в документе.
XMLDocument
Общедоступные методы
 МетодОпределено
  
XMLDocument(source:String = null)
Создает новый объект XMLDocument.
XMLDocument
 Inherited
Добавляет указанный узел к списку дочерних узлов объекта XML.
XMLNode
 Inherited
Формирует и возвращает новый узел XML того же типа, с тем же именем, значением и атрибутами, что и заданный объект XML.
XMLNode
  
Создает новый объект XMLNode с именем, заданным параметром.
XMLDocument
  
Создает новый текстовый узел XML с заданным текстом.
XMLDocument
 Inherited
Возвращает URI пространства имен, связанный с заданным префиксом узла.
XMLNode
 Inherited
Возвращает префикс, связанный с заданным URI пространства имен узла.
XMLNode
 Inherited
Показывает, есть ли у заданного объекта XMLNode дочерние узлы.
XMLNode
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Добавляет новый дочерний узел в список дочерних узлов объекта XML перед узлом beforeNode.
XMLNode
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
Выполняет анализ текста XML, заданного параметром-значением, и заполняет указанный объект XMLDocument полученным в результате деревом XML.
XMLDocument
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Удаляет заданный объект XML из его родительского объекта.
XMLNode
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Возвращает строковое представление объекта XML.
XMLDocument
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
docTypeDeclсвойство
public var docTypeDecl:Object = null

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

Показывает сведения об определении DOCTYPE для XML-документа. После разбора текста XML и преобразования его в объект XMLDocument свойство XMLDocument.docTypeDecl объекта XMLDocument получает текст определения DOCTYPE XML-документа (например, <!DOCTYPE приветствие 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свойство 
public var idMap:Object

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

Объект, содержащий узлы 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свойство 
public var ignoreWhite:Boolean = false

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

Если установлено значение true, текстовые узлы, содержащие только пробелы, при разборе игнорируются. Текстовые узлы, начинающиеся или заканчивающиеся пробелом, не затрагиваются. Параметр по умолчанию — false.

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

  my_xml.ignoreWhite = true;
  

xmlDeclсвойство 
public var xmlDecl:Object = null

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

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

Сведения о конструкторе
XMLDocument()Конструктор
public function XMLDocument(source:String = null)

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

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

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

Параметры
source:String (default = null) — Текст XML разбирается, и в результате создается новый объект XMLDocument.

См. также

Сведения о методе
createElement()метод
public function createElement(name:String):XMLNode

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

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

Параметры

name:String — Имя метки создаваемого элемента XMLDocument.

Возвращает
XMLNode — Объект XMLNode.

См. также

createTextNode()метод 
public function createTextNode(text:String):XMLNode

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

Создает новый текстовый узел XML с заданным текстом. Для нового узла изначально не существует родителей, а у текстового узла не может быть дочерних узлов или родственных элементов того же уровня. Этот метод возвращает ссылку на объект XMLDocument, которым представлен текстовый узел. Этот метод и метод XMLDocument.createElement() являются методами-конструкторами для создания узлов объекта XMLDocument.

Параметры

text:String — Текст для создания нового текстового узла.

Возвращает
XMLNode — Объект XMLNode.

См. также

parseXML()метод 
public function parseXML(source:String):void

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

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

Параметры

source:String — Текст XML для разбора и передачи указанному объекту XMLDocument.

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

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

Возвращает строковое представление объекта XML.

Возвращает
String — Строковое представление объекта XML.
Примеры Как пользоваться примерами
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";
    }
}