XML2Object
| Kind of class: | class |
|---|---|
| Inherits from: | XML |
| Author: | Arthur Clemens, Alessandro Crugnola |
| Classpath: | org.asapframework.util.xml.XML2Object |
| File last modified: | Thursday, 12 October 2006, 11:19:40 |
Returns a value object from an XML instance, that can be queried using dot syntax.
If a node has more than 1 child with the same name, an array is created with the children contents
The object created will have this structure:
If a node has more than 1 child with the same name, an array is created with the children contents
The object created will have this structure:
obj {
nodeName :
attributes : an object containing the node attributes
data : an object containing the node contents
}Usage:
- With the following xml file:
<?xml version="1.0" encoding="utf-8" ?> <days> <subscription num="3">8-8-2004</subscription> </days>
var xmlData:Object = XML2Object.parseXML( anXML ); var subscriptionText = xmlData.days.subscription.data; // returns 8-8-2004 var num = xmlData.days.subscription.attributes.num; // returns the string '3'
When you pass true as convertNumbers argument, the string will be converted to number:var xmlData:Object = XML2Object.parseXML( anXML, true ); var num = xmlData.days.subscription.attributes.num; // returns the number 3
Multiple child nodes of the same parent with the same name will be put into an array. However, there is no way of knowing at parse time whether a single node was meant to be an array. For that purpose, the function makeArray() can be used.
Example:
- XML:
<L1> <L2>item 1</L2> <L2>item 2</L2> </L1> <L3> <L4>item 3</L4> <L3>After parsing,L1.L2will be an array with two items.L3.L4will be a single Object. WithXML2Object.makeArray(L3.L4)L3.L4becomes a single item array.
Summary
Class methods
- parseXML (inXmlData:XML, convertNumbers:Boolean) : Object
- Creates an value object from an XML instance.
- translateXML (convertNumbers, from, path, name, position) : Object
- Core translation engine.
- makeArray (inObj) : Array
- Check whether the input item is an array, if not, make an array with the input item as single value.
Class properties
oResult
static private oResult:Object = new Object ()
(read)
oXML
static private oXML:XML
(read)
xml
static xml:XML
(read)
The xml passed in the parseXML method.
Class methods
makeArray
static function makeArray (
inObj) : Array
Check whether the input item is an array, if not, make an array with the input item as single value.
Parameters:
inObj:
Object
Returns:
- Array
parseXML
static function parseXML (
inXmlData:XML,
convertNumbers:Boolean) : Object
Creates an value object from an XML instance.
Parameters:
xmlData :
XML instance to parse
convertNumbers:
Set to true to automatically convert number strings to numbers (all text in xml is treated as text otherwise)
Returns:
- an Object with the contents of the passed XML
Usage:
-
XML2Object.parseXML( theXMLtoParse );
translateXML
static private function translateXML (
convertNumbers,
from,
path,
name,
position) : Object
Core translation engine.