Flash CS5.5-AIR 我无法使用 writeUTF 字节写入 HTML 标签

Flash CS5.5-AIR i cant write HTML tags with writeUTFBytes

我需要使用来自 Flash CS5.5 的 AIR 编写一些 XML 我的代码有效,但我不知道如何在不将 < 转换为 ; 的情况下编写一些 html 标签。 > 我想为一个 . 我怎样才能做到这一点?

这是我正在使用的代码类型,我正在从 Flash CS5.5 处理 AIR

一切正常,除了我没有得到“<”但是 ;& gt;在输出文件中,许多 HTML 符号也是如此,例如 > 等

    function SaveFile(event:MouseEvent){
var objs:XML = new XML( <objects /> );
var ball1:XML = <ball />.appendChild(input_text.text); 
// In the input i want to write the CDATA and the HTML text dynamically each time
ball1.@xPos = 12; 
ball1.@yPos = 42; 
objs.appendChild( ball1 ); 


var vFile = File.desktopDirectory.resolvePath('file.xml');
var vStream = new FileStream();
vStream.open(vFile, FileMode.WRITE);
vStream.writeUTFBytes(objs);
vStream.close();
}

您正在将 String 传递给 appendChild 函数,这就是您在 xml 文件中将结果作为 "text" 的原因。所以为了避免这种情况,你只需要传递一个 XML 对象而不是 String

// ...

var ball1:XML = <ball />.appendChild(new XML(input_text.text)); 

// ...

编辑:

要将 XML 声明添加到您的 XML 文件,您可以像这样使用 XMLDocument

// ...

objs.appendChild(ball1); 

var xml_document:XMLDocument = new XMLDocument(objs.toXMLString());
    xml_document.xmlDecl = '<?xml version="1.0" encoding="utf-8"?>\n';

var file = File.desktopDirectory.resolvePath('file.xml');
var file_stream = new FileStream();
    file_stream.open(file, FileMode.WRITE);
    file_stream.writeUTFBytes(xml_document.toString());
    file_stream.close();

希望能帮到你。