![]() |
|
||||||||||
|
|||||
|
Banned
[+4 10.07.10]
[+1.4 10.08.10] [+1 20.08.10] |
Уважаемые флешеры, столкнулся с проблемой.
Я стал писать приложение для ВКонтакте и на выходе ихнее API дает xml файл вида: <?xml version="1.0" encoding="utf-8"?> <response list="true"> <uid>4126</uid> <uid>481</uid> <uid>1843</uid> <uid>3829</uid> </response> Спасибо за внимание! Последний раз редактировалось KirAmp; 26.06.2010 в 19:20. |
|
|||||
|
хмл класс позволяет трактовать ноды как элементы массива
public function XmlExample() { var employees:XML = <employees> <employee ssn="123-123-1234"> <name first="John" last="Doe"/> <address> <street>11 Main St.</street> <city>San Francisco</city> <state>CA</state> <zip>98765</zip> </address> </employee> <employee ssn="789-789-7890"> <name first="Mary" last="Roe"/> <address> <street>99 Broad St.</street> <city>Newton</city> <state>MA</state> <zip>01234</zip> </address> </employee> </employees>; trace(employees.employee[0].address.zip); // 98765 trace(employees.employee[1].@ssn); // 789-789-7890 trace(employees..zip[0]); // 98765 trace(employees..@ssn[1]); // 789-789-7890 |
|
|||||
|
Banned
[+4 10.07.10]
[+1.4 10.08.10] [+1 20.08.10] |
ShockWave512 Огромное спасибо. Жаль что на АС3, но для тестов хватит
|
|
|||||
|
Регистрация: Jun 2010
Сообщений: 30
|
KirAmp, не поленись, скачай любую книжку по AS2. там много интересного есть =)
|
|
|||||
|
Banned
[+4 10.07.10]
[+1.4 10.08.10] [+1 20.08.10] |
in4core
1) public function 2) Непомню, чтобы в АС2 можно было бы вбивать хмл таким образом 3) Так же автор написал в теге [AS3.] |
|
|||||
|
Ну вот тупо парсер ответов контакта кидаю. Все неоптимально и некрасиво, но ряд моментов по работе с XML конструктивами применительно к контактовским ответам есть.
_level0.LDP - клип с прогресс-баром загрузчика. Там есть текстовое поле stat static function doParse(SV:String, field:String) // Парсер ответов Контакта { var xml_str:String = SV var my_xml:XML = new XML() my_xml.ignoreWhite = true my_xml.parseXML(xml_str) var node = my_xml.firstChild if ( ( node.attributes.list != undefined && node.attributes.list != "true" ) || node.nodeName == "error" ) { _level0.LDP.stat.text = "API OPERATION ERROR: "+field; } else { _level0.LDP._visible = false } var users:Array = new Array() var friends:Array = new Array() var aDDS:Array = new Array() for (var i=0; i<node.childNodes.length; i++) { if (node.childNodes[i].nodeName=="user") // Распарсивание ответа ЮзерПрофиль { var user = users[users.length] = new Object() for (var j=0; j<node.childNodes[i].childNodes.length; j++) { var xnode = node.childNodes[i].childNodes[j] user[xnode.nodeName] = xnode.firstChild.nodeValue } var tmpNick = user.nickname if ( tmpNick == undefined || tmpNick =="" ) { user.nickname = user.first_name +" "+user.last_name } } if ( node.childNodes[i].nodeName=="balance") // Баланс приложения { var appBalance = node.childNodes[i].firstChild.nodeValue } if (node.childNodes[i].nodeName=="uid") // Распарсивание ответа друззя прилажения { friends[friends.length] = node.childNodes[i].firstChild.nodeValue } if (node.childNodes[i].nodeName=="ad") // Распарсивание ответа РЕКЛАМНЫЙ МОДУЛЬ { var addModule = aDDS[aDDS.length] = new Object() for (var j=0; j<node.childNodes[i].childNodes.length; j++) { var xnode = node.childNodes[i].childNodes[j] addModule[xnode.nodeName] = xnode.firstChild.nodeValue } } } switch ( field ) { case "user": // --------- parse user profile section return users break; case "balance": // --------- parse user profile section return appBalance break; case "uid": // --------- parse user profile section return friends break; case "ad": // --------- parse user profile section return aDDS break; default : trace("VKParser: Invalid Field") return "VKParser_Field_Erorr" break; } } |
|
|||||
|
Banned
[+4 10.07.10]
[+1.4 10.08.10] [+1 20.08.10] |
Спасибо! Буду разбираться
![]() ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:29. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|