PDA

Просмотр полной версии : Как прочитать XML?


DissDoc
09.07.2007, 17:14
<?xml version="1.0" encoding="utf-8" ?>
<map name="Town" w="32" h="32">
<tile name="0" x="0" y="0"/>
<tile name="0" x="0" y="1"/>
<tile name="0" x="0" y="2"/>
</map>


Уже день мучаюсь с кодом, никак не могу сообразить, как это привести к виду

tag=map
name=Town
w=32
h=32

tag=tile
name=0
x=0
y=0

и т.д.

как это сделать, вот мой код

var mapXml:XML = new XML();
mapXml.load("test.xml");


mapXml.onLoad = function(success)
{
// Вот тут пытаюсь по аттрибутам прочитать (как в хелпе)
for (attr in mapXml.firstChild.attributes) {
trace (attr + " = " + mapXml.firstChild.attributes[attr]);
// Но тут еще и теги нужно прочитать...
// я если честно просто запутался
}


да. еще. мне не нужно писать код, я сам справлюсь, меня только интересует как начать читать xml-файл?
т.е. XMLDocument, NodeType какое бывает (т.е. они носят числовые значения или как? т.е. атрибут это или узел?)
Да и все по сути.
А. + еще длину считать как? Т.е. проверил я на детей в узле. Получил числовое значение детей, чтобы считать данные.
idMap - пробовал. Меня это не устраивает.
Вообщем, больше всего интересует XMLDocument во флеше как получить?
ЗЫ. вроде постарался изложить суть.

Ведьмак
09.07.2007, 17:49
думаю на этом примере все будет понятно:

в первом кадре:
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("test.xml");
myXML.onLoad = function(success) {
if (success) {
gotoAndStop(2);
} else {
trace("error: not success");
}
};

во вотром кадре:
rootNode = myXML.firstChild;
for (var i = 0; i<rootNode.childNodes.length; i++) {
theAttributes = rootNode.childNodes[i].attributes;
var picName:String = "pic_"+theAttributes.id_number;
var link:String = theAttributes.client_site;
}

сам XML:
<clients>
<client id_number="0" client_site="http://www.defender.ru" />
<client id_number="1" client_site="http://www.a4tech.ru" />
<client id_number="2" client_site="http://www.schwarzkopf.ru" />
<client id_number="3" client_site="http://www.asbis.ru" />
<client id_number="4" client_site="http://www.casio.ru" />
<client id_number="5" client_site="http://www.defender.ru" />
<client id_number="6" client_site="http://www.a4tech.ru" />
</clients>

iNils
09.07.2007, 17:52
http://www.artlebedev.ru/tools/technogrette/etc/flash-xml/

DissDoc
10.07.2007, 12:20
О, спасибо! То что нужно.
Я если правильно понял, то в скрипте

rootXML = new XML();

rootXML и является xml-документом как таковым...