2012-10-25 89 views

回答

2

確實如此。爲什麼?它將簡化將處理XML文件輸出的應用程序的生命 - 它們無需擔心新行的格式,從而提高了應用程序的兼容性(考慮到Linux和Windows之間簡單文本編輯器的兼容性 - 它們差不多總是顯示不正確的文件,在Windows中通常是單行顯示)。

當然,如果您出於任何原因需要\ r未轉換,那麼採用任何現有的XML解析器實現並對其進行修改很簡單。在tinyxml中,您需要修改TiXmlBase :: ReadText()函數,或者您可以獲取它的較舊版本,因爲它用於使空白完整無缺。另一方面,從設計角度來看,只需通過字符替換函數運行解析器輸出並將所有「\ n」替換爲「\ r \ n」就會更清晰。

當然,最好的辦法就是直接使用輸出,現在我無法想象任何需要這樣的場景。

+0

可能會出現這樣的情況:當\ r的XML文件中的某些機密數據被編碼爲條形碼,並且當您嘗試讀取數據時,您發現的所有數據都是\ n 數據不得更改爲由於安全原因而被編碼。 –

+2

Ahaa - 在這種情況下,將數據編碼爲BASE64和*然後將其放入XML中是很常見的。 XML不保留空白(按設計),並且它本身並不適合存儲二進制數據。 –

1

CDATA沒有被命名爲空白字符數據。處理你情況的唯一優雅的方式是編碼爲Base64。

Base64以64個可打印字符對全部255個可能的字符進行編碼。 要在64個選項得到255個可能使文本有點大,但是這將是你唯一的選擇除了改變了你的XML佈局類似

<TEXT> 
    <CHAR>13</CHAR> 
    <CHAR>255</CHAR> 
</TEXT> 

但在我看來,現在更糟糕,則&#13;你得到。

http://www.ibm.com/developerworks/xml/library/x-cdata/ 訪問此站點以獲取有關處理XML中二進制數據的更多信息。

希望它可以幫助你。

+0

這是不可接受的,甚至:( –

相關問題