![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Есть экземпляр класса XML без потомков, но с атрибутами, например такой:
<item id="12345" name="qwerty" /> Как из него сделать рыбу в одну строчку кода? <item id="" name=""/> В одну строчку никак?))) Это все нужно для того, чтобы провести минимальную верификацию структуры данных на то, что все данные в xml-листе одного типа (в примере item), имеют одинаковое число атрибутов, и эти атрибуты имеют одинаковые имена. Т.е. решение мне видится так, что все элементы xml-листа приводятся к рыбе, а затем сравниваются с какой-то проверочной рыбой (или просто с рыбой первого элемента в листе) через метод toXMLString( ). Т.е., если все элементы имеют одинаковую структуру, то и рыбы у них одинаковые. Конкретно "сделать рыбу в одну строчку" - это чисто из спортивного интереса))) А вы как бы решали проблему верификации структуры данных в xml-листе?
__________________
скриптограф Последний раз редактировалось orcpochta; 29.05.2010 в 13:00. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Что именно надо верифицировать?)) Что у всех item есть id и name?
var list:XMLList = xml..item; var count:uint = list.length(); if (list..@id.length() == count && list..@name.length() == count) { trace("verified"); } Добавлено через 11 минут Рыба в одну строчку
__________________
Reality.getBounds(this); |
|
|||||
|
Modus ponens
|
Но делать в одну строчку не практично.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
Не, что касается не рыбы, а верификации вообще, то надо сделать проверку, чтобы все элементы в листе имели однородную структуру, т.е. имели один и тот же тип (имя) (мы его не знаем и не должны знать, но в примере это item ), и одинаковый набор атрибутов (одинаковое кол-во и имена) - опять же без какой-либо конкретики,типа id и name, - просто однородность структуры данных должна быть.
Детей рассматривать не надо, т.к. это уже не имеет отношения конкретно к рассматриваемым нами данным. Вот с этой точки зрения, чтобы проверить однородность xml-листа, надо сравнить рыбы от всех его элементов, т.е. сравнить с рыбой первого элемента рыбы всех остальных. Добавлено через 3 минуты вот мое кондовое решение))) и рыба не в одну строчку)))) private function checkDataProviderStructure (dataProvider:XMLList):Boolean { var xmlList:XMLList = new XMLList(dataProvider); var fishStr:String = getXMLFish(xmlList[0]).toXMLString( ); for each (var xml:XML in xmlList) { if (getXMLFish(xml).toXMLString( ) != fishStr) return false; } return true; } private function getXMLFish (xml:XML):XML { var fish:XML = new XML(xml); for (var i:uint = fish.@ * .length( ); i--; ) { fish.@ * [i] = ""; } return fish; }
__________________
скриптограф Последний раз редактировалось orcpochta; 29.05.2010 в 15:57. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
А если атрибуты местами поменять?
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
__________________
Reality.getBounds(this); |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
udaaff))))
А если ошибка в первенце))) Тут все вилами на воде...
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
можно считать, что
иначе нам просто не организовать структуру, которая не была бы привязана к каким-то конкретным именам Добавлено через 2 минуты Цитата:
и я нихрена не понял, что происходит в скобках replace))))) это надо регулярные выражения почитать, или что это?
__________________
скриптограф Последний раз редактировалось orcpochta; 29.05.2010 в 16:10. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Да, регулярные выражения.
Ищем =", потом любые символы кроме ", потом " Когда такая последовательность найдена, она заменяется на ="" Можно и toXMLString(), я не против)))
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 29.05.2010 в 16:15. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|