Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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# 调用Xdocument.save之前应跳过的字符_C#_.net_Xml Serialization - Fatal编程技术网

C# 调用Xdocument.save之前应跳过的字符

C# 调用Xdocument.save之前应跳过的字符,c#,.net,xml-serialization,C#,.net,Xml Serialization,我有这个问题。。我正在使用套接字连接从客户端接收数据。但这并不重要。所有数据都使用XDocument对象存储在XML文件中。 有时,当调用XDocument.Save(filestream)并向其传递带有特定字符或符号的数据时,我会遇到一个异常,例如(无效的十六进制字符),这意味着XML文件不能有一些特殊字符? 如果是,我在哪里可以找到可能产生此类异常的特殊字符列表?范围[0x0-0x1F]中的字符称为控制字符,不包括0x9、0xA、0xD,它们不能在XML中使用 以下是一段引用自: [定义:解

我有这个问题。。我正在使用套接字连接从客户端接收数据。但这并不重要。所有数据都使用XDocument对象存储在XML文件中。 有时,当调用XDocument.Save(filestream)并向其传递带有特定字符或符号的数据时,我会遇到一个异常,例如(无效的十六进制字符),这意味着XML文件不能有一些特殊字符?
如果是,我在哪里可以找到可能产生此类异常的特殊字符列表?

范围[0x0-0x1F]中的字符称为控制字符,不包括0x9、0xA、0xD,它们不能在XML中使用

以下是一段引用自:

[定义:解析的实体包含文本、字符序列、, 可以表示标记或字符数据。][定义:A 字符是ISO/IEC 10646:2000规定的文本的原子单位 [ISO/IEC 10646]。法定字符包括制表符、回车符、换行符、, 以及Unicode和ISO/IEC10646的法定字符 A.1规范性参考文件中引用的这些标准在 准备此文档的时间。可能会向这些文档中添加新字符 标准的修订版或新版本。因此,XML处理器 必须接受指定字符范围内的任何字符。]

字符范围

字符::=#x9 | xA | xD |[#x20-#xD7FF]| [#xE000-#xffd]|[#x10000-#x10FFFF]/*任何Unicode字符, 不包括代理块、FFFE和FFFF*/


[0x0-0x1F]范围内的字符称为控制字符,不包括0x9、0xA、0xD,它们不能在XML中使用

以下是一段引用自:

[定义:解析的实体包含文本、字符序列、, 可以表示标记或字符数据。][定义:A 字符是ISO/IEC 10646:2000规定的文本的原子单位 [ISO/IEC 10646]。法定字符包括制表符、回车符、换行符、, 以及Unicode和ISO/IEC10646的法定字符 A.1规范性参考文件中引用的这些标准在 准备此文档的时间。可能会向这些文档中添加新字符 标准的修订版或新版本。因此,XML处理器 必须接受指定字符范围内的任何字符。]

字符范围

字符::=#x9 | xA | xD |[#x20-#xD7FF]| [#xE000-#xffd]|[#x10000-#x10FFFF]/*任何Unicode字符, 不包括代理块、FFFE和FFFF*/


@Darin给出的答案应该能让你找到正确的方向。我将补充一点,如果您有一个用于xml开发的工具,例如或您可以快速确定有问题的字符。如果您没有这样的工具,可以使用WC3学校的在线xml验证程序,如下所示:

这将检查xml的格式是否正确,如果它包含无效字符,则它的格式将不正确


一种更不可能的情况可能是,xml文档指定的编码确实允许导致问题的字符。如果文档被指定为UTF-8(很可能是这样),那么这不可能是问题所在。

由@Darin给出的答案应该能为您指明正确的方向。我将补充一点,如果您有一个用于xml开发的工具,例如或您可以快速确定有问题的字符。如果您没有这样的工具,可以使用WC3学校的在线xml验证程序,如下所示:

这将检查xml的格式是否正确,如果它包含无效字符,则它的格式将不正确


一种更不可能的情况可能是,xml文档指定的编码确实允许导致问题的字符。如果文档被指定为UTF-8(可能是这样),那么这就不可能是问题。

Yes
XML
不仅仅是一个文本文件,您不能在任何时候编写任何您想要的内容,但通常都有解决方案。请提供一个您编写的代码示例,并获得异常。您可能需要在文档的某些部分使用CDATA。再多了解一些细节,你现在就会有一个明确的答案了。始终发布完整的错误消息和相关代码。但是Darin有一个很好的猜测。谢谢你..我使用CDATA,但这并不能解决问题是的
XML
不仅仅是一个文本文件,你不能在任何时候写任何你想写的东西,但通常都有解决方案。请提供一个您编写的代码示例,并获得异常。您可能需要在文档的某些部分使用CDATA。再多了解一些细节,你现在就会有一个明确的答案了。始终发布完整的错误消息和相关代码。但是Darin有一个很好的猜测。谢谢。我使用CDATA,但这并不能解决问题problem@Tigran,不,这不取决于那个。@Tigran,不,这不取决于那个。