簡體   English   中英

Linq to XML,C#和XML編碼字符

[英]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 &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或其他)。

第二個字符串上的索引關閉了四個,可能是因為你沒有計算4個字符“amp;”的刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM