2009-02-17 54 views
3

我想以類似的方式在Flex 3中創建XML字符串,您可能會用Java來實現它。我只希望在格式使用DOM函數在Flex(AS3)中創建XML字符串

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

一小塊XML的代碼,我可以找到這樣做的唯一的類型似乎可笑....

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"); 

這當然有可能嗎?

回答

13

如果你使用as3,它是一個遺留類,那麼新的XML和XMLList類就是那些支持優秀E4X的類。使用它就像這樣簡單:

var myXML:XML = <slide />; 
[email protected]="http://www.thumbs.com/thumb.jpg"; 
[email protected]="static"; 
[email protected]="bleh"; 
trace("myXML", myXML.toXMLString()); 

@意味着它是一個屬性,不使用它會添加子節點。

+0

我無法編輯您的答案,但我認爲您的意思是「屬性」,而不是「屬性」。 – erikprice 2009-02-17 12:37:43

0

此外,如果您使用的是可變的屬性名稱,你可以使用

var _attName:String = "foo"; 
[email protected][_attName] = "bar"; 

但你需要閱讀它回來了作爲

[email protected][_attname][0]; 
1

這可能會更容易:

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>