Создание строки XML во Flex (AS3) с использованием функций DOM - PullRequest
3 голосов
/ 17 февраля 2009

Я хочу создать строку XML во Flex 3 аналогично тому, как вы можете приблизиться к ней в Java. Я хочу только маленький кусочек XML в формате

<slide thumb="http://www.thumbs.com/thumb.jpg" type="static" blah="bleh" />

Единственный тип кода, который я могу найти для этого, кажется смешным ....

private function createXML(): void
{
var xm:XML = <Relyon></Relyon>;
var nodeName:String = “EMPLOYEENAME”;
var nodeValue:String = “KUMAR”;
var xmlList:XMLList = XMLList(”<”+nodeName+”>”+nodeValue+”</”+nodeName+”>”);
xm.appendChild(xmlList);
Alert.show(xm);
}

Я бы хотел сделать что-то вроде ...

var x:XMLNode = new XMLNode("slide");
x.setAttribute("thumb", thumbURL);
x.setAttribute("type", "static");

Это наверняка возможно?

Ответы [ 3 ]

13 голосов
/ 17 февраля 2009

Держитесь подальше от XMLNode, если вы используете as3, это устаревший класс, новые классы XML и XMLList поддерживают превосходный E4X. С их помощью это так просто:

var myXML:XML = <slide />;
myXML.@thumb="http://www.thumbs.com/thumb.jpg";
myXML.@type="static";
myXML.@blah="bleh";
trace("myXML", myXML.toXMLString());

@ означает, что это атрибут, без использования которого вместо этого будут добавлены дочерние узлы.

1 голос
/ 04 августа 2011

Это, вероятно, будет проще:

var thumb:String = "http://www.thumbs.com/thumb.jpg";

var type:String = "static";

var blah:String = "bleh";

var xml:XML =        

          <Relyon>
             <slide thumb={thumb} type={type} blah={blah} />
          </Relyon>;


trace( xml.toXMLString() );

//traces out

 <Relyon>
     <slide thumb="http://www.thumbs.com/thumb.jpg" type="static" blah="bleh"/>
 </Relyon>
0 голосов
/ 25 августа 2010

Кроме того, если вы используете переменную в качестве имени атрибута, вы можете использовать

var _attName:String = "foo";
myXML.@[_attName] = "bar";

но вы должны прочитать его обратно как

myXML.@[_attname][0];
...