Читалка:

Код AS1/AS2:
function LoadDat(){
var prof:XML = new XML();
prof.ignoreWhite = true;
prof.load(urlxml);
prof.onLoad = function(success)
{
if (success)
{
var node = prof.firstChild
trace("XML LOAD NODES:"+node.childNodes.length+" NodeName:"+node.nodeName)
for ( var T in node.attributes){
OPTIONS[T] = node.attributes[T]
}
for ( var i=0; i<node.childNodes.length; i++)
{
var nodeC = node.childNodes[i]
var DEV = DATAFORK[DATAFORK.length] = new Object() // CITIES
DEV.tag = nodeC.nodeName
DEV.id = i
for ( var T in nodeC.attributes) DEV[T] = nodeC.attributes[T]
DEV.LOT = new Array()
for ( var j=0; j<nodeC.childNodes.length; j++)
{
var nodeL = nodeC.childNodes[j]
var Lot = DEV.LOT[DEV.LOT.length] = new Object() // Members
Lot.tag = nodeL.nodeName
Lot.id = j
for ( var T in nodeL.attributes) Lot[T] = nodeL.attributes[T]
TTL++
}
}
if (prof.status != 0)
{
var errorMessage:String;
switch (prof.status)
{
case -2 :
errorMessage = "A CDATA section was not properly terminated.";
break;
case -3 :
errorMessage = "The XML declaration was not properly terminated.";
break;
case -4 :
errorMessage = "The DOCTYPE declaration was not properly terminated.";
break;
case -5 :
errorMessage = "A comment was not properly terminated.";
break;
case -6 :
errorMessage = "An XML element was malformed.";
break;
case -7 :
errorMessage = "Out of memory.";
break;
case -8 :
errorMessage = "An attribute value was not properly terminated.";
break;
case -9 :
errorMessage = "A start-tag was not matched with an end-tag.";
break;
case -10 :
errorMessage = "An end-tag was encountered without a matching start-tag.";
break;
default :
errorMessage = "An unknown error has occurred.";
break;
}
trace( "\nXML Structure Error:\n"+prof.status+" - "+errorMessage );
}
else
{
_root.gotoAndPlay(2)
}
}
else
{
trace( "XML LOAD ERROR: "+urlxml );
}
}
}
Фрагмент XML:

Код:
<?xml version="1.0" encoding="UTF-8"?>
<MAPDATA editor="true">
<CITY desc="Ногинск" X="288.75" Y="76.4" UTC="4" hideClock="TRUE" GIS="99971_1">
<member name="carrotoff" url=""/>
</CITY>
</MAPDATA>