Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除无效字符,如'¥';从XML_C#_Sql Server_Xml - Fatal编程技术网

C# 删除无效字符,如'¥';从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

我有一个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
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