繁体   English   中英

在AS3 Flash中编辑和保存XML

[英]Edit and Save XML in AS3 Flash

自从今天早上以来,我对此一直感到困难,所以我最终决定寻求您的帮助。 我想加载一个XML文件(本地)并对其进行编辑,然后将结果保存在同一文件中。 加载/读取不是问题,它可以正常工作,但是在as3中保存文件非常困难。

(nb:我有一个本地服务员,所以这不是问题)

到目前为止,这是我迄今为止最好的解决方法(在此处找到):

save.php:

<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){ 
    $xml = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $file = fopen("http://localhost/cs_texte.xml","wt"); 
    fwrite($file, $xml); 
    fclose($file);
} 
?>

myAs3script.as:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

// Loading XML -> works fine     
xmlLoader.load(new URLRequest("http://localhost/cs_texte.xml"));

//When loading complete          
function LoadXML(e:Event):void {
    xmlData = new XML(e.target.data);
    trace(xmlData); // Works fine 

    [.. Do some stuff on xml ..]

    var xmlResponse:XML;
    var xmlURLReq:URLRequest = new URLRequest("http://localhost/save.php");
    xmlURLReq.data = xmlData;
    xmlURLReq.contentType = "text/xml";
    xmlURLReq.method = URLRequestMethod.POST;
    var xmlSendLoad:URLLoader = new URLLoader();
    xmlSendLoad.addEventListener(Event.COMPLETE, completeHandler);
    xmlSendLoad.load(xmlURLReq);

    function completeHandler(evt:Event) {
        trace ('Save complete');
    }           
}

但它不起作用,即使我尝试将其清空,xml文件也不会改变。

知道为什么吗? (并且您知道如何在Flash输出控制台中获取php错误吗?如果有的话..)

谢谢您的帮助! (并且请放心,这最初不是我的项目。)

多亏了Andrey Popov,我才发现了问题,这只是一个绝对URL而不是相对URL的问题。因此,您需要像这样从PHP文件中提供一个相对地址:

<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){ 
    $xml = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $file = fopen("cs_texte.xml","wt"); 
    fwrite($file, $xml); 
    fclose($file);
} 
?>

仅此而已,但这确实让我很难受! 谢谢帮我弄清楚,希望对别人有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM