ActionScript 3.0 Language and Components Reference | All Packages | All Classes | Language Elements | Index | Appendixes | Conventions | Frames No Frames |
XMLNode

Package | flash.xml
Class | public class XMLNode
Inheritance | XMLNode Object
Subclasses | XMLDocument

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

The XMLNode class represents the legacy XML object that was present in ActionScript 2.0 and that was renamed in ActionScript 3.0. In ActionScript 3.0, consider using the new top-level XML class and related classes instead, which support E4X (ECMAScript for XML). The XMLNode class is present for backward compatibility.

View the examples

See also

XML
flash.xml.XMLDocument

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | attributes : Object An object containing all of the attributes of the specified XMLNode instance. | XMLNode
|  | childNodes : Array [read-only] An array of the specified XMLNode object's children. | XMLNode
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | firstChild : XMLNode Evaluates the specified XMLDocument object and references the first child in the parent node's child list. | XMLNode
|  | lastChild : XMLNode An XMLNode value that references the last child in the node's child list. | XMLNode
|  | localName : String [read-only] The local name portion of the XML node's name. | XMLNode
|  | namespaceURI : String [read-only] If the XML node has a prefix, namespaceURI is the value of the xmlns declaration for that prefix (the URI), which is typically called the namespace URI. | XMLNode
|  | nextSibling : XMLNode An XMLNode value that references the next sibling in the parent node's child list. | XMLNode
|  | nodeName : String A string representing the node name of the XMLNode object. | XMLNode
|  | nodeType : uint A nodeType constant value, either XMLNodeType.ELEMENT_NODE for an XML element or XMLNodeType.TEXT_NODE for a text node. | XMLNode
|  | nodeValue : String The node value of the XMLDocument object. | XMLNode
|  | parentNode : XMLNode An XMLNode value that references the parent node of the specified XML object, or returns null if the node has no parent. | XMLNode
|  | prefix : String [read-only] The prefix portion of the XML node name. | XMLNode
|  | previousSibling : XMLNode An XMLNode value that references the previous sibling in the parent node's child list. | XMLNode
|  | prototype : Object [static] A reference to the prototype object of a class or function object. | Object

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | XMLNode(type:uint, value:String) Creates a new XMLNode object. | XMLNode
|  | appendChild(node:XMLNode):void Appends the specified node to the XML object's child list. | XMLNode
|  | cloneNode(deep:Boolean):XMLNode Constructs and returns a new XML node of the same type, name, value, and attributes as the specified XML object. | XMLNode
|  | getNamespaceForPrefix(prefix:String):String Returns the namespace URI that is associated with the specified prefix for the node. | XMLNode
|  | getPrefixForNamespace(ns:String):String Returns the prefix that is associated with the specified namespace URI for the node. | XMLNode
|  | hasChildNodes():Boolean Indicates whether the specified XMLNode object has child nodes. | XMLNode
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | insertBefore(node:XMLNode, before:XMLNode):void Inserts a new child node into the XML object's child list, before the beforeNode node. | XMLNode
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeNode():void Removes the specified XML object from its parent. | XMLNode
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toString():String Evaluates the specified XMLNode object, constructs a textual representation of the XML structure, including the node, children, and attributes, and returns the result as a string. | XMLNode
|  | valueOf():Object Returns the primitive value of the specified object. | Object

Property Detail

attributes | property

`attributes:Object` [read-write]

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

An object containing all of the attributes of the specified XMLNode instance. The XMLNode.attributes object contains one variable for each attribute of the XMLNode instance. Because these variables are defined as part of the object, they are generally referred to as properties of the object. The value of each attribute is stored in the corresponding property as a string. For example, if you have an attribute named `color`, you would retrieve that attribute's value by specifying `color` as the property name, as the following code shows:

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

Implementation
`public function get attributes():Object`
`public function set attributes(value:Object):void`

childNodes | property |

`childNodes:Array` [read-only]

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

An array of the specified XMLNode object's children. Each element in the array is a reference to an XMLNode object that represents a child node. This is a read-only property and cannot be used to manipulate child nodes. Use the `appendChild()`, `insertBefore()`, and `removeNode()` methods to manipulate child nodes.

This property is undefined for text nodes (`nodeType == 3`).

Implementation
`public function get childNodes():Array`

See also

XMLNode.nodeType
XMLNode.appendChild()
XMLNode.insertBefore()
XMLNode.removeNode()

firstChild | property |

`public var firstChild:XMLNode`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Evaluates the specified XMLDocument object and references the first child in the parent node's child list. This property is `null` if the node does not have children. This property is `undefined` if the node is a text node. This is a read-only property and cannot be used to manipulate child nodes; use the `appendChild()`, `insertBefore()`, and `removeNode()` methods to manipulate child nodes.

See also

XMLNode.appendChild()
XMLNode.insertBefore()
XMLNode.removeNode()

lastChild | property |

`public var lastChild:XMLNode`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

An XMLNode value that references the last child in the node's child list. The `XMLNode.lastChild` property is `null` if the node does not have children. This property cannot be used to manipulate child nodes; use the `appendChild()`, `insertBefore()`, and `removeNode()` methods to manipulate child nodes.

See also

XMLNode.appendChild()
XMLNode.insertBefore()
XMLNode.removeNode()

localName | property |

`localName:String` [read-only]

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

The local name portion of the XML node's name. This is the element name without the namespace prefix. For example, the node `<contact:mailbox/>bob@example.com</contact:mailbox>` has the local name "mailbox", and the prefix "contact", which comprise the full element name "contact.mailbox".

You can access the namespace prefix through the `prefix` property of the XML node object. The `nodeName` property returns the full name (including the prefix and the local name).

Implementation
`public function get localName():String`

namespaceURI | property |

`namespaceURI:String` [read-only]

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

If the XML node has a prefix, `namespaceURI` is the value of the `xmlns` declaration for that prefix (the URI), which is typically called the namespace URI. The `xmlns` declaration is in the current node or in a node higher in the XML hierarchy.

If the XML node does not have a prefix, the value of the `namespaceURI` property depends on whether there is a default namespace defined (as in `xmlns="http://www.example.com/"`). If there is a default namespace, the value of the `namespaceURI` property is the value of the default namespace. If there is no default namespace, the `namespaceURI` property for that node is an empty string (`""`).

You can use the `getNamespaceForPrefix()` method to identify the namespace associated with a specific prefix. The `namespaceURI` property returns the prefix associated with the node name.

Implementation
`public function get namespaceURI():String`

See also

getNamespaceForPrefix()
getPrefixForNamespace()

nextSibling | property |

`public var nextSibling:XMLNode`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

An XMLNode value that references the next sibling in the parent node's child list. This property is `null` if the node does not have a next sibling node. This property cannot be used to manipulate child nodes; use the `appendChild()`, `insertBefore()`, and `removeNode()` methods to manipulate child nodes.

See also

XMLNode.firstChild
XMLNode.appendChild()
XMLNode.insertBefore()
XMLNode.removeNode()

nodeName | property |

`public var nodeName:String`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

A string representing the node name of the XMLNode object. If the XMLNode object is an XML element (`nodeType == 1`), `nodeName` is the name of the tag that represents the node in the XML file. For example, `TITLE` is the `nodeName` of an HTML `TITLE` tag. If the XMLNode object is a text node (`nodeType == 3`), nodeName is `null`.

See also

XMLNode.nodeType

nodeType | property |

`public var nodeType:uint`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

A `nodeType` constant value, either `XMLNodeType.ELEMENT_NODE` for an XML element or `XMLNodeType.TEXT_NODE` for a text node.

The `nodeType` is a numeric value from the NodeType enumeration in the W3C DOM Level 1 recommendation: http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html. The following table lists the values:

Integer value | Defined constant
--- | ---
1 | ELEMENT_NODE
2 | ATTRIBUTE_NODE
3 | TEXT_NODE
4 | CDATA_SECTION_NODE
5 | ENTITY_REFERENCE_NODE
6 | ENTITY_NODE
7 | PROCESSING_INSTRUCTION_NODE
8 | COMMENT_NODE
9 | DOCUMENT_NODE
10 | DOCUMENT_TYPE_NODE
11 | DOCUMENT_FRAGMENT_NODE
12 | NOTATION_NODE

In Flash Player, the built-in XMLNode class only supports `XMLNodeType.ELEMENT_NODE` and `XMLNodeType.TEXT_NODE`.

See also

XMLNodeType.TEXT_NODE
XMLNodeType.ELEMENT_NODE

nodeValue | property |

`public var nodeValue:String`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

The node value of the XMLDocument object. If the XMLDocument object is a text node, the `nodeType` is 3, and the `nodeValue` is the text of the node. If the XMLDocument object is an XML element (`nodeType` is 1), `nodeValue` is `null` and read-only.

See also

XMLNode.nodeType

parentNode | property |

`public var parentNode:XMLNode`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

An XMLNode value that references the parent node of the specified XML object, or returns `null` if the node has no parent. This is a read-only property and cannot be used to manipulate child nodes; use the `appendChild()`, `insertBefore()`, and `removeNode()` methods to manipulate child nodes.

See also

XMLNode.appendChild()
XMLNode.insertBefore()
XMLNode.removeNode()

prefix | property |

`prefix:String` [read-only]

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

The prefix portion of the XML node name. For example, the node `<contact:mailbox/>bob@example.com</contact:mailbox>` prefix "contact" and the local name "mailbox", which comprise the full element name "contact.mailbox".

The `nodeName` property of an XML node object returns the full name (including the prefix and the local name). You can access the local name portion of the element's name via the `localName` property.

Implementation
`public function get prefix():String`

previousSibling | property |

`public var previousSibling:XMLNode`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

An XMLNode value that references the previous sibling in the parent node's child list. The property has a value of null if the node does not have a previous sibling node. This property cannot be used to manipulate child nodes; use the `appendChild()`, `insertBefore()`, and `removeNode()` methods to manipulate child nodes.

See also

XMLNode.lastChild
XMLNode.appendChild()
XMLNode.insertBefore()
XMLNode.removeNode()
Constructor Detail

XMLNode | () | Constructor

`public function XMLNode(type:uint, value:String)`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Creates a new XMLNode object. You must use the constructor to create an XMLNode object before you call any of the methods of the XMLNode class.

Note: Use the `createElement()` and `createTextNode()` methods to add elements and text nodes to an XML document tree.

Parameters

| `type:uint` — The node type: either 1 for an XML element or 3 for a text node.
| `value:String` — The XML text parsed to create the new XMLNode object.

See also

XMLDocument.createElement()
XMLDocument.createTextNode()
Method Detail

appendChild | () | method

`public function appendChild(node:XMLNode):void`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Appends the specified node to the XML object's child list. This method operates directly on the node referenced by the `childNode` parameter; it does not append a copy of the node. If the node to be appended already exists in another tree structure, appending the node to the new location will remove it from its current location. If the `childNode` parameter refers to a node that already exists in another XML tree structure, the appended child node is placed in the new tree structure after it is removed from its existing parent node.

Parameters

| `node:XMLNode` — An XMLNode that represents the node to be moved from its current location to the child list of the `my_xml` object.

See also

The E4X approach to XML processing

cloneNode | () | method |

`public function cloneNode(deep:Boolean):XMLNode`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Constructs and returns a new XML node of the same type, name, value, and attributes as the specified XML object. If `deep` is set to `true`, all child nodes are recursively cloned, resulting in an exact copy of the original object's document tree.

The clone of the node that is returned is no longer associated with the tree of the cloned item. Consequently, `nextSibling`, `parentNode`, and `previousSibling` all have a value of `null`. If the `deep` parameter is set to `false`, or the `my_xml` node has no child nodes, `firstChild` and `lastChild` are also null.

Parameters

| `deep:Boolean` — A Boolean value; if set to `true`, the children of the specified XML object will be recursively cloned.

Returns

| `XMLNode` — An XMLNode Object.

getNamespaceForPrefix | () | method |

`public function getNamespaceForPrefix(prefix:String):String`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Returns the namespace URI that is associated with the specified prefix for the node. To determine the URI, `getPrefixForNamespace()` searches up the XML hierarchy from the node, as necessary, and returns the namespace URI of the first `xmlns` declaration for the given `prefix`.

If no namespace is defined for the specified prefix, the method returns `null`.

If you specify an empty string (`""`) as the `prefix` and there is a default namespace defined for the node (as in `xmlns="http://www.example.com/"`), the method returns that default namespace URI.

Parameters

| `prefix:String` — The prefix for which the method returns the associated namespace.

Returns

| `String` — The namespace that is associated with the specified prefix.

See also

XMLNode.getPrefixForNamespace()
XMLNode.namespaceURI

getPrefixForNamespace | () | method |

`public function getPrefixForNamespace(ns:String):String`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Returns the prefix that is associated with the specified namespace URI for the node. To determine the prefix, `getPrefixForNamespace()` searches up the XML hierarchy from the node, as necessary, and returns the prefix of the first `xmlns` declaration with a namespace URI that matches `ns`.

If there is no `xmlns` assignment for the given URI, the method returns `null`. If there is an `xmlns` assignment for the given URI but no prefix is associated with the assignment, the method returns an empty string (`""`).

Parameters

| `ns:String` — The namespace URI for which the method returns the associated prefix.

Returns

| `String` — The prefix associated with the specified namespace.

See also

XMLNode.getNamespaceForPrefix()
XMLNode.namespaceURI

hasChildNodes | () | method |

`public function hasChildNodes():Boolean`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Indicates whether the specified XMLNode object has child nodes. This property is `true` if the specified XMLNode object has child nodes; otherwise, it is `false`.

Returns

| `Boolean` — Returns `true` if the specified XMLNode object has child nodes; otherwise, `false`.

insertBefore | () | method |

`public function insertBefore(node:XMLNode, before:XMLNode):void`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Inserts a new child node into the XML object's child list, before the `beforeNode` node. If the `beforeNode` parameter is undefined or null, the node is added using the `appendChild()` method. If `beforeNode` is not a child of `my_xml`, the insertion fails.

Parameters

| `node:XMLNode` — The XMLNode object to be inserted.
| `before:XMLNode` — The XMLNode object before the insertion point for the `childNode`.

See also

XMLNode.cloneNode()

removeNode | () | method |

`public function removeNode():void`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Removes the specified XML object from its parent. Also deletes all descendants of the node.

toString | () | method |

`public function toString():String`

Language Version : | ActionScript 3.0

Player Version : | Flash Player 9

Evaluates the specified XMLNode object, constructs a textual representation of the XML structure, including the node, children, and attributes, and returns the result as a string.

For top-level XMLDocument objects (those created with the constructor), the `XMLDocument.toString()` method outputs the document's XML declaration (stored in the `XMLDocument.xmlDecl` property), followed by the document's `DOCTYPE` declaration (stored in the `XMLDocument.docTypeDecl` property), followed by the text representation of all XML nodes in the object. The XML declaration is not output if the `XMLDocument.xmlDecl` property is `null`. The `DOCTYPE` declaration is not output if the `XMLDocument.docTypeDecl` property is `null`.

Returns

| `String` — The string representing the XMLNode object.

See also

XMLDocument.docTypeDecl
XMLDocument.xmlDecl
Examples How to use examples
XMLDocumentExample.as
The following example uses the XMLDocument and XMLNode classes to parse and format an XML document. Rather than loading an external XML file, the example uses the top-level XML class to create an XML document, then parses it.

    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";
        }
    }

Submit Feedback on LiveDocs
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Tue May 20 2008, 04:02 AM -07:00