我們在C#上使用IronPython,並在控制檯和應用程序上獲得不同的結果。IronPython,C#和XML - 打破縮進?
此代碼運行正常的IronPython的控制檯:
str=[]
a = 1
b = 0
c = 1
if a==1:
str.append('One')
if b==1:
str.append('Two')
if c==1:
str.append('Three')
out=','.join(str)
print out
但相同的代碼返回一個錯誤,在我們的應用程序:
unexpected token 'if'
我懷疑問題出在我的新行,因爲字符串包含Python代碼通過XML(XML> C#> Python)傳遞:
<Set key="PythonCode" value="ipy:str=[]
a = 1
b = 0
c = 1
if a==1:
str.append('One')
if b==1:
str.append('Two')
if c==1:
str.append('Three')
out=','.join(str)"/>
其他com mands返回預期的結果,我的問題是與縮進的命令(條件,循環)。因爲我無法訪問C#代碼,所以我尋找一種方法來編寫單行或其他任何不依賴縮進或換行符的方式。 我嘗試這樣做:
<Set key="PythonCode" value="ipy:str=[];
a = 1;
b = 0;
c = 1;
if a==1: str.append('One');
if b==1: str.append('Two');
if c==1: str.append('Three');
out=','.join(str);"/>
,但我得到了一次同樣的錯誤,因爲應該有每個條件後,一個空行。
任何想法?
「包含Python代碼的字符串通過XML傳遞」爲什麼會發生這種情況? – 2012-04-22 11:04:20
XML是我們設計人員應用程序的接口。由於他們不是程序員,他們只是創建和修改XML文件,使他們更容易理解。在這種情況下,我們需要實現一個Python代碼,並且這是傳遞需要運行的代碼的唯一方法。 – GuyB7 2012-04-22 11:28:03
如果他們不是程序員,那麼他們如何將Python嵌入到您的XML中? – 2012-04-22 11:39:00