Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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#_Xml - Fatal编程技术网

C# 如何检查Xml根元素标记是否已关闭?

C# 如何检查Xml根元素标记是否已关闭?,c#,xml,C#,Xml,我正在从服务器接收XML数据,如下所示: <SystemAsync timestamp="1289734897" status="stopped" time="0"/> 或: 解析xml没有问题。但服务器可以分两部分发送xml数据 1.1部分xml数据 <SystemAsync timestamp="1289734897" status="stopped" time="0"> <AntTable antstatus="ready" active="

我正在从服务器接收XML数据,如下所示:

<SystemAsync timestamp="1289734897" status="stopped" time="0"/>

或:


解析xml没有问题。但服务器可以分两部分发送xml数据

1.1部分xml数据

<SystemAsync timestamp="1289734897" status="stopped" time="0">
    <AntTable antstatus="ready" active="1"/>

2.部分xml数据:

</SystemAsync>

如果xml数据没有结束,我如何检查,以便等待2。部分

这是一个服务器/客户端套接字系统

我的服务器从根服务器接收XML数据,并将XML数据发送给所有客户端


谢谢大家!

我相信在这种特殊情况下,这个问题可以更一般化为整个XML文档验证的问题。考虑到在多个数据块中发送数据是一种有效的情况,如果您使用的通信协议能够为您提供一些类似EndOfStream标记/消息的东西来指示所有数据都已发送,那就太好了。许多消息传递系统提供内置的功能支持,如消息索引/序列号,可能您正在使用的协议支持它,以便您可以在初始化连接时启用它,请查看文档(如果提供)

否则,您必须在每次收到下一个块时执行检查

有用链接:

  • 企业设计模式

我相信在这种特殊情况下,这个问题可以更一般化为整个XML文档验证的问题。考虑到在多个数据块中发送数据是一种有效的情况,如果您使用的通信协议能够为您提供一些类似EndOfStream标记/消息的东西来指示所有数据都已发送,那就太好了。许多消息传递系统提供内置的功能支持,如消息索引/序列号,可能您正在使用的协议支持它,以便您可以在初始化连接时启用它,请查看文档(如果提供)

否则,您必须在每次收到下一个块时执行检查

有用链接:

  • 企业设计模式

服务器需要对其发送的消息进行分隔。它基本上需要告诉你什么时候完成


将代码基于“我何时停止获取异常”不是一个好主意。如果您从未停止接收异常,该怎么办?

服务器需要对其发送的消息进行分隔。它基本上需要告诉你什么时候完成


将代码基于“我何时停止获取异常”不是一个好主意。如果您从未停止获取异常,该怎么办?

您可以检查当前数据是否为无效xml,如果是,请等待更多数据;-)也许您可以简单地测试接收到的文件是否是有效的xml。服务器是否可以简单地告诉您片段的总长度(字节)或数量?@MarcGravel,不,服务器不发送长度,我只获取缓冲区的长度。您可以检查当前数据是否为无效xml,如果是,请等待更多数据;-)也许您可以简单地测试收到的文件是否是有效的xml。服务器是否可以简单地告诉您片段的总长度(字节)或数量?@MarcGravel,不,服务器不发送长度,我只获取缓冲区的长度。服务器总是发送有效的xml,我会尝试使用自制通信或一些消息传递系统检查您的有效性?这不是自制通信。我已设置了服务器/客户端,但我的服务器正在从另一台服务器(提供商)接收正常。如果服务器和客户端之间的通信不是自制的,您使用的是哪一种标准消息传递系统/协议?服务器始终发送有效的xml,我会尝试使用自制通信或一些消息传递系统检查您的有效性?这不是自制通信。我已经设置了服务器/客户端,但我的服务器正在从另一个服务器(提供商)接收Ok如果服务器和客户端之间的通信不是自制的,您使用的是哪种标准消息传递系统/协议?
</SystemAsync>