1

我经常使用 XML 对象将数据加载到 Flash 中。当 XML 对象在闪存中时,我将其转换为字符串 (myData.toString()) 并使用我的分隔符对其进行解析。

但是,当我加载带有以下<>标签的字符串数据时:

Hi please state <name> <address> 

这会弄乱接收到的数据,因为<>我认为 XML 将封装视为新节点。所以我得到的是:

Hi please state 

之后的一切都过去了。。

我可以在输出之前将 <> 标签转换为 PHP 中的安全字符,但我想知道 Flash AS2 中是否有一个函数可以让我仅将 XML 作为纯字符串读取?

我已经尝试过: var headers:Array = new Array("Content-Type", "text/plain", "X-ClientAppVersion", "2.0"); my_xml.addRequestHeader(headers);

但这没有用。

我会这样做LoadVars,但我需要使用 XML 进行这项工作,因为LoadVars将传入的字符串转换为 urlencoded,而 XML 根本不接触传入的数据(我的数据可以有特殊字符并且它不会中断。只有<>中断它。

4

1 回答 1

2

如果您想要纯文本数据,为什么要使用 XML 加载器来解析 XML 文件...?

无论如何,如果您坚持使用该 xml 加载器,您可以:

  • 将 xml 数据封装到CDATA中,这将防止任何节点解析
  • 正确格式化 XML,因为如果将根节点分配给字符串变量,它递归地写出所有内容,包括所有节点

编辑: 如果您想使用 loadVars 加载纯数据,唯一的诀窍是使用 onData 而不是 onLoad。从文本文件(来自as2 语言参考的示例:

var my_lv:LoadVars = new LoadVars();
my_lv.onData = function(src:String) {
    if (src == undefined) {
        trace("Error loading content.");
        return;
    }
    trace(src);
};
my_lv.load("content.txt", my_lv, "GET");

在这里,您还可以看到如何在 actionscript 2 中加载一些文本数据的完整选项列表:http: //livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm ?context =LiveDocs_Parts&file=00000886.html

于 2013-01-24T11:18:28.813 回答