繁体   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