2009-02-17 53 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>