2012-06-13 93 views
1

在我的XML文件中,我試圖使用文件的路徑;它開始像這樣:用XML表示C: Program Files

<value key="myPath"><![CDATA[C:\Program Files\myFile.exe]]> 

然後,當我啓動我的應用程序它總是說,無法找到文件:

找不到文件C:\ PROGRAM

所以,顯然它仍然陷入了Program和Files之間的空間。我認爲我的CDATA會解決這個問題。

我怎麼了?

+1

它不是xml,cdata或不,它是你的程序錯誤處理的空間。 cdata只是一種不需要轉義的便捷方式<>& –

+0

CDATA(或XML)與您的問題無關。這是你的程序不能正確處理實際值。 –

+0

你們是對的,這是解析器搞砸了。感謝您的所有意見。 – fumeng

回答

1

如果我在設計這個應用程序,我會存儲URI而不是文件名。這似乎是在通常使用XML的世界中的正確方法。但是,當然,您可以使用XML來存儲您喜歡的任何內容,並且如果要求存儲Windows文件名,則歡迎您這樣做。

它不起作用的事實與XML無關。從XML中提取文件名並嘗試打開該文件的接收應用程序出錯了:它會弄亂文件名本身,或者將它傳遞給API,而不能處理包含空格的文件名。

1

嘗試在路徑周圍放置雙引號。

<value key="myPath"><![CDATA["C:\Program Files\myFile.exe"]]> 

您可能不需要使用CDATA,以防萬一您想要清理它。

1

這可能不是XML,它可能是您的應用程序在空格後終止。

幾個可能性

  • 結束語中引號的路徑 「」
  • 逃脫空間C:\程序\文件
  • URL編碼從空間空格%20

沒有關於如何執行XML的更多信息很難說。

1

默認情況下,XML不會混淆你的空格。它也不關心在文件擴展名之前的後退,冒號或點。真正的大部分有效路徑字符都是有效的XML字符。 (我認爲它們實際上都是有效的XML文本節點內容。)

問題肯定是在XML處理中,而不是XML內容。

0

您可以使用&quote;Path%quote;技術。很髒,但工作正常,

相關問題