2011-03-25 68 views
0

我在XML有一個字符串,它看起來像這樣:的LINQ to XML,C#和XML編碼字符

I am a sample string & I have an ampersand.

當我展示這對使用它看起來像這樣:

I am a sample string & I have an ampersand.

用戶可以用此字符串互動,當他們完成,其變動存儲在數據庫中只有指數了,因爲它們與交互的字符串比一個在XML短。

例如:如果一個用戶把一個換行符在字符串這樣的結尾:

I am a sample string & I have an
ampersand

該數據庫將保存它,並從它創建新的XML將看起來像此(由4關閉):

I am a sample string & I have
an ampersand

最好是在代碼中處理這個問題,並在將其放入數據庫之前進行調整?看起來像這樣會不太理想,因爲我必須處理所有編碼字符,誰知道有多少,我必須爲所有語言。

是有東西在LINQ to XML來處理這種情況呢?

建議嗎?

謝謝

亞倫

+2

你的意思是什麼「指數是關閉」?你沒有真正給我們足夠的信息來回答這個問題。 – 2011-03-25 15:29:54

+1

由於第二個字符串的長度縮短了4,因此索引的偏移量爲4。 – 2011-03-25 15:35:39

回答

2

你不應該處理這 - 的LINQ to XML將在這種情況下形成有效的XML的護理:

XElement ele = new XElement("foo"); 
ele.Value = "I am a sample string & I have an ampersand."; 
string text = ele.ToString();//<foo>I am a sample string &amp; I have an ampersand.</foo> 
string value = ele.Value; //I am a sample string & I have an ampersand. 

ele.Value = "I am a sample string &amp; I have an ampersand."; 
string text = ele.ToString();//<foo>I am a sample string &amp;amp; I have an ampersand.</foo> 
string value = ele.Value; //I am a sample string &amp; I have an ampersand. 

你應該擔心關於你的數據庫中存儲的有效,而不是那些值的表示(無論是XML或其他)。

0

你的第二個字符串指數是關閉四個可能是因爲你還不算去除4個字符的「放大器」;