我是從使用者的攝影數據,並將其寫入到一個XML字符串,像這樣:如何使用ActionScript 3安全地編碼XML?
VAR myXml:XML = {} userEnteredText
這是罰款和花花公子,直到用戶獲得與可愛特殊字符如「& <>」等。非法字符也是像0x19這樣的問題。
是否有方法,將sanatize我的XML和編碼特殊字符或將我必須推出自己的?
我是從使用者的攝影數據,並將其寫入到一個XML字符串,像這樣:如何使用ActionScript 3安全地編碼XML?
VAR myXml:XML = {} userEnteredText
這是罰款和花花公子,直到用戶獲得與可愛特殊字符如「& <>」等。非法字符也是像0x19這樣的問題。
是否有方法,將sanatize我的XML和編碼特殊字符或將我必須推出自己的?
簡單的字符串轉換爲textnode應該做的伎倆
var s:String = "test<ie>test";
var x:XML = <xml/>;
x.appendChild(s);
trace(x.toXMLString());//outputs "<xml>test<ie>test</xml>"
也,你可以一下子就將這些內容爲CTADA ...
我不知道,爲什麼0x19應該是非法的...空格和nullbytes都經常掉線...但如果它是你想要的二進制數據,你應該使用base64 ... >here's a lib<
top level functionescape
是一種方法。
這是真的back2dos的建議,評論:
var s:String = "test<ie>test";
var x:XML = <xml/>;
x.appendChild(s);
trace(x.toXMLString());//outputs "<xml>test<ie>test</xml>"
在我的機器,嘗試這種產生的異常:
An ActionScript error has occurred:
TypeError: Error #1085: The element type "ie" must be terminated by the matching end-tag "</ie>".
所以我還在尋找答案完全相同的問題。
對不起,我還沒有100分,所以我不能直接評論那篇文章呢。
這確實工作,但是:
var s:String = "test<ie>test";
var x:XML = <xml>{s}</xml>;
Alert.show(x.toXMLString());
,這表明了在警報:<xml>test<ie>test</xml>
除了這種逃避的空間爲%20,其中,除非您在客戶端進行類似的轉換,否則不會自動轉義。 – 2010-05-17 03:26:41