PDA

Просмотр полной версии : Изменить атрибут XML


MerlinTwi
06.12.2006, 22:47
var xml:XML = <test name="test" />;
xml.@name = "zzz";

А что делать если название атрибута "name" хранится в переменной? :)

artcraft
06.12.2006, 23:15
xml.@[nameString] = "zzz";

miramax
06.12.2006, 23:40
а что если мы хотим перебрать всех детей или все атрибуты. И вобще я не понимаю зачем вызывать функции типа attributes() и т.п., почему убрали массивы ? Где крутость сего подхода ?

artcraft
06.12.2006, 23:52
The following example shows using for each..in to iterate over the properties in an XMLList object (doc.p):

var doc:XML =
<body>
<p>Hello</p>
<p>Hola</p>
<hr />
<p>Bonjour</p>
</body>;
for each (var item in doc.p) {
trace(item);
}

/* output:
Hello
Hola
Bonjour
*/

подробности тут (http://livedocs.macromedia.com/flex/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001910.html) :~)

miramax
07.12.2006, 00:13
В твоём примере пропущен тэг <br />. Как перебрать всех детей средствами нового xml объекта?

artcraft
07.12.2006, 00:20
var doc:XML = <body><p>Hello</p><p>Hola</p><hr /><p>Bonjour</p></body>;

for each (var item in doc.*) {
trace(item.toXMLString());
}

/*
<p>Hello</p>
<p>Hola</p>
<hr />
<p>Bonjour</p>
*/

miramax
07.12.2006, 00:27
Ну не нравится мне такой подход, не нравится... :)

artcraft
07.12.2006, 00:28
тогда делай так
for(var i:uint=0; i<doc.children().length(); i++){
trace(doc.child(i).toXMLString());
}

etc
07.12.2006, 02:29
Юзайте XMLDocument тогда, по старинке :D

artcraft
07.12.2006, 02:41
И у вас будет обратная совместимость :~)