[英]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.