C# 删除无效字符,如'¥';从XML
我有一个XML文件,我从中读取了WCF服务中的几个标记。XML的格式如下所示:C# 删除无效字符,如'¥';从XML,c#,sql-server,xml,C#,Sql Server,Xml,我有一个XML文件,我从中读取了WCF服务中的几个标记。XML的格式如下所示: .... <field type="text" name="name">ABCD EFGH</field> <field type="text" name="address">XYZ</field> <field type="text" name="details">Random Data --""¥ If assume that an ASCII char
....
<field type="text" name="name">ABCD EFGH</field>
<field type="text" name="address">XYZ</field>
<field type="text" name="details">Random Data --""¥ If assume that an ASCII
character is a valid character then it can be done with this:
public string JustAscii(string source)
{
return new string(source.Where(c => c <= sbyte.MaxValue).ToArray());
}
。。。。
ABCD-EFGH
XYZ
随机数据-“”¥如果假定ASCII
字符是有效字符,则可以使用以下方法:
公共字符串JustAscii(字符串源)
{
返回新字符串(source.Where(c=>c如果假定一个ASCII
字符是一个有效字符,那么可以使用以下方法完成:
公共字符串JustAscii(字符串源)
{
返回新字符串(source.Where(c=>c)您在上下文中对有效字符的定义是什么?只有数字和字母?元不是“无效的XML字符”。这是有效的。也许你真的看到了问题?@frenchie嘿,很抱歉回复得太晚。但我没有将任何内容定义为有效/无效字符。因此没有任何约束。但是当我将XML传递到存储过程时,问题似乎出现了。我认为问题似乎出现在存储过程中。我的存储过程将XML作为一个参数,并定义为:alter procedure[procedure_name]@MyXML XML
我应该使用其他东西吗?@JeppeStigNielsen@frenchie您在上下文中对有效字符的定义是什么?只有数字和字母?该¥不是“无效的XML字符”。这是有效的。也许你真的看到了问题?@frenchie嘿,很抱歉回复得太晚。但我没有将任何内容定义为有效/无效字符。因此没有任何约束。但是当我将XML传递到存储过程时,问题似乎出现了。我认为问题似乎出现在存储过程中。我的存储过程将XML作为参数,并定义为:alterprocedure[procedure\u name]@MyXML XML
我应该使用其他东西吗?@JeppeStigNielsen@frenchieNote,但是,为foreach
循环的每次迭代创建一个新的string
实例效率很低。您可以使用StringBuilder
或类似的东西(source.Where)(c= > c@ AFSAAM,谢谢。您的解决方案似乎是可行的。但是我想知道为什么‘Quy’在SQL存储过程中给了我一个无效的XML符号。@ HARDIKTIVIEDI可能是代码> MS SQL < /Code > XML字段类型不支持Unicode。默认情况下,事件文本字段也不支持Unicode。<代码> VARCHAR < /Code > f不支持Unicode
,但nvarchar
能够支持Unicode
。但是,请注意,为foreach
循环的每次迭代创建一个新的string
实例效率很低。您可以使用StringBuilder
或类似的新字符串(source.Where(c= > c@ AFSAAM,谢谢。您的解决方案似乎是可行的。但是我想知道为什么‘Quy’在SQL存储过程中给了我一个无效的XML符号。@ HARDIKTIVIEDI可能是代码> MS SQL < /Code > XML字段类型不支持Unicode。默认情况下,事件文本字段也不支持Unicode。<代码> VARCHAR < /Code > f不支持Unicode
,但nvarchar
能够支持Unicode
。