[英]Linq to XML, C# and Encoded Characters in XML
我有一個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中是否存在處理這種情況的內容?
建議嗎?
謝謝,
亞倫
您不必處理這個問題 - 在這種情況下,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 & 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 & 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.
你應該擔心你的數據庫中存儲有效的值 ,這些值不表示 (無論是XML或其他)。
第二個字符串上的索引關閉了四個,可能是因為你沒有計算4個字符“amp;”的刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.