flash.xmlXMLNode The XMLNode class represents the legacy XML object that was present in ActionScript 2.0 and that was renamed in ActionScript 3.0.Object 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. 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"; } } XMLflash.xml.XMLDocumentXMLNode Creates a new XMLNode object.typeuintThe node type: either 1 for an XML element or 3 for a text node. valueStringThe XML text parsed to create the new XMLNode object. 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.

XMLDocument.createElement()XMLDocument.createTextNode()
appendChild Appends the specified node to the XML object's child list.nodeflash.xml:XMLNodeAn XMLNode that represents the node to be moved from its current location to the child list of the my_xml object. 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. cloneNode Constructs and returns a new XML node of the same type, name, value, and attributes as the specified XML object.An XMLNode Object. flash.xml:XMLNodedeepBooleanA Boolean value; if set to true, the children of the specified XML object will be recursively cloned. 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.

getNamespaceForPrefix Returns the namespace URI that is associated with the specified prefix for the node.The namespace that is associated with the specified prefix. StringprefixStringThe prefix for which the method returns the associated namespace. 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.

XMLNode.getPrefixForNamespace()XMLNode.namespaceURI
getPrefixForNamespace Returns the prefix that is associated with the specified namespace URI for the node.The prefix associated with the specified namespace. StringnsStringThe namespace URI for which the method returns the associated prefix. 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 ("").

XMLNode.getNamespaceForPrefix()XMLNode.namespaceURI
hasChildNodes Indicates whether the specified XMLNode object has child nodes.Returns true if the specified XMLNode object has child nodes; otherwise, false. Boolean 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. insertBefore Inserts a new child node into the XML object's child list, before the beforeNode node.nodeflash.xml:XMLNodeThe XMLNode object to be inserted. beforeflash.xml:XMLNodeThe XMLNode object before the insertion point for the childNode. 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. XMLNode.cloneNode()removeNode Removes the specified XML object from its parent. Removes the specified XML object from its parent. Also deletes all descendants of the node. toString 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.The string representing the XMLNode object. 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.

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.

XMLDocument.docTypeDeclXMLDocument.xmlDecl
firstChild Evaluates the specified XMLDocument object and references the first child in the parent node's child list.flash.xml:XMLNode 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. XMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()lastChild An XMLNode value that references the last child in the node's child list.flash.xml:XMLNode 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. XMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()nextSibling An XMLNode value that references the next sibling in the parent node's child list.flash.xml:XMLNode 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. XMLNode.firstChildXMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()nodeName A string representing the node name of the XMLNode object.String 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. XMLNode.nodeTypenodeType A nodeType constant value, either XMLNodeType.ELEMENT_NODE for an XML element or XMLNodeType.TEXT_NODE for a text node.uint 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:

4CDATA_SECTION_NODEInteger valueDefined constant1ELEMENT_NODE3TEXT_NODE5ENTITY_REFERENCE_NODE7PROCESSING_INSTRUCTION_NODE9DOCUMENT_NODE11DOCUMENT_FRAGMENT_NODE

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

XMLNodeType.TEXT_NODEXMLNodeType.ELEMENT_NODE
nodeValue The node value of the XMLDocument object.String 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. XMLNode.nodeTypeparentNode An XMLNode value that references the parent node of the specified XML object, or returns null if the node has no parent.flash.xml:XMLNode 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. XMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()previousSibling An XMLNode value that references the previous sibling in the parent node's child list.flash.xml:XMLNode 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. XMLNode.lastChildXMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()attributes An object containing all of the attributes of the specified XMLNode instance.Object 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
	 
childNodes An array of the specified XMLNode object's children.Array 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).

XMLNode.nodeTypeXMLNode.appendChild()XMLNode.insertBefore()XMLNode.removeNode()
localName The local name portion of the XML node's name.String 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).

namespaceURI 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.StringThe URI of the namespace to which the XML node's prefix resolves. 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.

getNamespaceForPrefix()getPrefixForNamespace()
prefix The prefix portion of the XML node name.String 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.

XMLNodeType The XMLNodeType class contains constants used with XMLNode.nodeType.Object The XMLNodeType class contains constants used with XMLNode.nodeType. The values are defined by 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 XMLNode.nodeTypeELEMENT_NODE Specifies that the node is an element.1uint Specifies that the node is an element. This constant is used with XMLNode.nodeType. The value is defined by 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 XMLNode.nodeTypeTEXT_NODE Specifies that the node is a text node.3uint Specifies that the node is a text node. This constant is used with XMLNode.nodeType. The value is defined by 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 XMLNode.nodeTypeXMLDocument The XMLDocument class represents the legacy XML object that was present in ActionScript 2.0.flash.xml:XMLNode The XMLDocument class represents the legacy XML object that was present in ActionScript 2.0. It was renamed in ActionScript 3.0 to XMLDocument to avoid name conflicts with the new XML class in ActionScript 3.0. In ActionScript 3.0, it is recommended that you use the new XML class and related classes, which support E4X (ECMAScript for XML).

The XMLDocument class, as well as XMLNode and XMLNodeType, are present for backward compatibility. The functionality for loading XML documents can now be found in the URLLoader class.

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"; } }
flash.net.URLLoaderXML classXMLDocument Creates a new XMLDocument object.sourceStringnullThe XML text parsed to create the new XMLDocument object. Creates a new XMLDocument object. You must use the constructor to create an XMLDocument object before you call any of the methods of the XMLDocument class.

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

XMLDocument.createElement()XMLDocument.createTextNode()
createElement Creates a new XMLNode object with the name specified in the parameter.An XMLNode object. flash.xml:XMLNodenameStringThe tag name of the XMLDocument element being created. Creates a new XMLNode object with the name specified in the parameter. The new node initially has no parent, no children, and no siblings. The method returns a reference to the newly created XMLNode object that represents the element. This method and the XMLDocument.createTextNode() method are the constructor methods for creating nodes for an XMLDocument object. XMLDocument.createTextNode()createTextNode Creates a new XML text node with the specified text.An XMLNode object. flash.xml:XMLNodetextStringThe text used to create the new text node. Creates a new XML text node with the specified text. The new node initially has no parent, and text nodes cannot have children or siblings. This method returns a reference to the XMLDocument object that represents the new text node. This method and the XMLDocument.createElement() method are the constructor methods for creating nodes for an XMLDocument object. XMLDocument.createElement()parseXML Parses the XML text specified in the value parameter and populates the specified XMLDocument object with the resulting XML tree.sourceStringThe XML text to be parsed and passed to the specified XMLDocument object. Parses the XML text specified in the value parameter and populates the specified XMLDocument object with the resulting XML tree. Any existing trees in the XMLDocument object are discarded. toString Returns a string representation of the XML object.A string representation of the XML object. String Returns a string representation of the XML object. docTypeDecl Specifies information about the XML document's DOCTYPE declaration.nullObject Specifies information about the XML document's DOCTYPE declaration. After the XML text has been parsed into an XMLDocument object, the XMLDocument.docTypeDecl property of the XMLDocument object is set to the text of the XML document's DOCTYPE declaration (for example, <!DOCTYPE greeting SYSTEM "hello.dtd">). This property is set using a string representation of the DOCTYPE declaration, not an XMLNode object.

The legacy ActionScript XML parser is not a validating parser. The DOCTYPE declaration is read by the parser and stored in the XMLDocument.docTypeDecl property, but no DTD validation is performed.

If no DOCTYPE declaration was encountered during a parse operation, the XMLDocument.docTypeDecl property is set to null. The XML.toString() method outputs the contents of XML.docTypeDecl immediately after the XML declaration stored in XML.xmlDecl, and before any other text in the XML object. If XMLDocument.docTypeDecl is null, no DOCTYPE declaration is output.

idMap An Object containing the nodes of the XML that have an id attribute assigned.unknownObject An Object containing the nodes of the XML that have an id attribute assigned. The names of the properties of the object (each containing a node) match the values of the id attributes.

Consider the following XMLDocument object:

<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>

In this example, the idMap property for this XMLDocument object is an Object with three properties: 41, 42, and IT. Each of these properties is an XMLNode that has the matching id value. For example, the IT property of the idMap object is this node:

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

You must use the parseXML() method on the XMLDocument object for the idMap property to be instantiated.

If there is more than one XMLNode with the same id value, the matching property of the idNode object is that of the last node parsed. For example:

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']); This will output the <c> node: <c id='1' />
ignoreWhite When set to true, text nodes that contain only white space are discarded during the parsing process.falseBoolean When set to true, text nodes that contain only white space are discarded during the parsing process. Text nodes with leading or trailing white space are unaffected. The default setting is false.

You can set the ignoreWhite property for individual XMLDocument objects, as the following code shows:

my_xml.ignoreWhite = true;
xmlDecl A string that specifies information about a document's XML declaration.nullObject A string that specifies information about a document's XML declaration. After the XML document is parsed into an XMLDocument object, this property is set to the text of the document's XML declaration. This property is set using a string representation of the XML declaration, not an XMLNode object. If no XML declaration is encountered during a parse operation, the property is set to null. The XMLDocument.toString() method outputs the contents of the XML.xmlDecl property before any other text in the XML object. If the XML.xmlDecl property contains null, no XML declaration is output.