XML - это круто в гибкости, но мне нужно решить неприятную проблему, вызванную тем, что я могу представить, это особенность. Видите ли, когда у вас есть только один тег чего-то, он создает объект, который не является массивом. Но когда находит более одного, он помещает их в структуру массива.
Я хочу решить это элегантно. Любая рекомендация.
Пример: это иллюстрирует результат HTTP-запроса:
private function initXMLRes(event:ResultEvent):void
{
var resObj:Object = event.result;
//
for each(var i:Object in resObj.specifictag)
{
// to use specifictag attributes, etc. example:
Alert.show(specifictag.name);
}
}
Код ранее будет работать с 2+ элементами. Он примет этот xml:
<specifictag name="one" /><specifictag name="two" />
... но не этот:
<specifictag name="one" />
Я мог бы проверить формат resObj.specifictag (чтобы проверить, есть ли у него массив), а затем продублировать код (для каждого случая). Но - даже если он вызывает функцию - я не думаю, что это элегантное решение.
Что ж, надеюсь, у кого-то есть хорошее представление по этому поводу. (По опыту знаю, что у SO гораздо больше экспертов по C ++, чем по гибкости, но что ж ...)
Идеально было бы, чтобы HTTPrequest обрабатывал каждый тег согласованным образом (всегда используя массивы ... хотя я предполагаю, что это также будет иметь свои недостатки).
Спасибо!