0

ASP.NET 控制器:

// GET api/assets/5
public string Get(int id)
{
    ... <some DB init here>
    string sResult = (string)oCmd.ExecuteScalar();
    return sResult;
}

AS3 接收器:

private function btnLoad_Click():void
{
    try
    {
        var urlRequest:URLRequest = new URLRequest("http://192.168.55.100/getimage/api/assets/1");
        oUrlLoader = new URLLoader();
        oUrlLoader.dataFormat = URLLoaderDataFormat.TEXT;
        oUrlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded, false, 0, true);
        oUrlLoader.load(urlRequest);
    }
    catch (ex:Error) {}
}
protected function onXMLDataLoaded(evt:Event):void {    
    try
    {
        var sData:String = oUrlLoader.data.toString();
        editor.paste_fromserver( XML(sData));
    }
    catch (ex:Error) { trace(ex.message); }
}

现在我尝试将字符串解析为 XML,但我得到的只是错误:“错误 #1090:XML 解析器故障:元素格式错误。”

我发现当我在“Watch Expression”中观看 oUrlLoader.data 时,值就在那里,但是 sData = oUrlLoader.data = """" (空字符串?)。

还尝试了 oUrlLoader.data.toString() - 没有帮助,但是手表表达式发生了一些变化,没有 toString() 它在值的开头有两个“”符号,而 toString() 它只有一个“。

任何想法为什么设置了 Watch Expression 值中的 oUrlLoader.data,但代码中的相同 oUrlLoader.data 不返回任何字符串?

PS这实际上是字符串值(SVG图像),而不是二进制数据。我正在为 as3 使用 Flash Builder。

编辑:

呵呵,sData在Watch Expression中也有值。数据是:

"<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg version=\"1.2\" id=\"svg2\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><circle cx=\"284\" cy=\"310\" r=\"150\" id=\"untitled\" transform=\"matrix(1,0,0,1,-37,-22)\" style=\"opacity:1;stroke:#44F247;fill:#F087CA;fill-opacity:1;stroke-opacity:0.54;stroke-width:35.1;stroke-miterlimit:3;stroke-linecap:none;stroke-linejoin:round;\"/></svg>"

当我复制这些数据并将其直接粘贴到代码中时它可以工作,但是使用这个 urlLoader 它不起作用...... :(

编辑2:

来自构建器的屏幕截图(观察表达式有值,代码中的 sData,当鼠标悬停时 - 没有):http: //img9.imageshack.us/img9/7471/o7sa.png

还有... :] 这个字符串在源数据库中不包含任何制表符、新行或其他空格...

4

1 回答 1

0

问题在于从服务器检索到的数据/文本。它充满了反斜杠。虽然在直接在代码中编写文本时它可以很好地用作转义字符,但它不应该出现在检索到的数据中。

于 2013-11-04T08:25:13.963 回答