![]() |
|
||||||||||
|
|||||
|
Цитата:
![]() Надо как-то различать, то с чем "умею" или "привык" работать и то с чем лучше работать, различать список пеерменных - LoadVars() и иерархическое xml-дерево, в данном слечае xml тут вообще ни к чему. Последний раз редактировалось amesqit; 11.12.2007 в 21:52. |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
а теперь создай txt файл ну к примеру 5 мегов и посмотри, загрузит ли его LoadVars или нет.
ну если на то пошло, то лучше всего база данных + LoadVars... Последний раз редактировалось CrazyFlasher; 12.12.2007 в 00:46. |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
Файл data.xml:
<data>
<name1>value1</name1>
<name2>value2</name2>
<name3>value3</name3>
<name4>value4</name4>
<name5>value5</name5>
</data>
var myData:XML = new XML();
myData.ignoreWhite = true;
var node:XMLNode;
for(node = myData.firstChild.firstChild;node!=null;node=node.nextSibling) {
trace(node.nodeName + "=" + node.firstChild.nodeValue);
}
Пугаться чего-нибудь нового не стоит, надо ж когда-то научиться, и чем раньше тем лучше ![]() Последний раз редактировалось Danilishin; 26.12.2007 в 17:31. |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
Цитата:
об примере: я верю что Ваш пример рабочий, я просто предоставил другую реализацию, где циклом for идет непосредственный обход по узлам, без использования массивов. об XML: Вам не нравится что данные в виде текстового узла? Ну хорошо, а если нужно передать текст, размером в несколько абзацев, или хотя бы просто длинную строку, не пихать же ее в аттрибут. А еще в этом XML каждый нод имеет отдельное имя, что позволяет легко превращать этот XML в ассоциативный массив (Object), например: |
|
|||||
|
не обязательно большие строки, а именно текстовые строки на то они и текстовые узлы, т.е. строки с неизвестным, каким угодно набором символов, без какого-то явнового их пробразования... сто-то вноде "*/-%+'(')'" я поместил бы в текстовый узел только из-за непредсказуемого набора символов, различные пути файйлов, их имена, удобнее хранить в атрибутах. Различные имена атрибутов возможно и нужны в некоторых случаях, но они далеко не всегда играют какую-то определяющуюроль, я бы даже сказал очень редко... к тому же если у вас заранее точно известно количество "name", проще сделать так:
xml-файл заметно уменьшился, выродился в 1 узел а получить из него данные вообще никакого цикла не надо и получите тот же объект пойдем дальше, если данные имеют такую структуру, то чем мы выигрываем перед LoadVads() ? в общем ни чем, поэтому лучше отправлять и получать это дело c помощью LoadVars(), т.к. значения мы сможем забрать в любом случае, а вот передаваемых данных станет чуть меньше. Если же нам не известно каличество атрибутов, то не понимаю зачем нам какой-то объект, если гораздо удобнее пользоваться массивом, а раз так, то различия между именами узлов значения играть вообще не будут... P.S.: пардон за столь долгие рассуждения ![]() |
|
|||||
|
Регистрация: Aug 2004
Сообщений: 83
|
это все верно, но под каждый конкретный случай разрабатывать отдельный парсер это трата времени (кроме случаев когда это действительно важно)
довольно распространенная задача получать данные в виде переменная=значение, конечно можно реализовывать разными способами в зависимости от контента и количества переменных, но имхо XML с текстовыми узлами подойдет в любом случае и можно смело использовать привычную структуру и парсер. Плюс в таком XML если для переменной требуются дополнительные параметры, вот их и рационально кидать в аттрибут, ибо это логично. Например, если мы в XML передаем текстовку, логично имя узла использовать в качестве переменной (идентификатор текста), в текстовом узле собственно сам текст, который кстати можно записать в виде HTML, а в аттрибуты при необходимости разместить некоторые свойства текста - положение например, ширину текстового блока, цвет и т.д. Также в атрибут можно записать автора, время создания или другие дополнительные параметры. |
|
|||||
|
Цитата:
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|