2011-10-30 52 views
1

我recieving从服务器是类似于XML的数据单项:如何检查Xml-Root元素标签是否关闭?

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

或:

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

有解析XML没有问题。但是,服务器可以发送XML数据在2个分裂部分

1.part XML数据的XML数据的

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

2.part:

</SystemAsync> 

我如何检查,如果XML数据没有结束,所以我可以等待2.部分。

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

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

谢谢!

+0

你*可以*检查当前数据是否无效xml,如果是的话等待更多的数据;-) – BrokenGlass

+0

也许你可以简单地测试接收到的文件是否是有效的xml。 –

+1

服务器不能简单地告诉你总的长度(字节)或碎片的数量吗? –

回答

1

服务器需要界定它发送消息。它基本上需要告诉你什么时候完成。

将您的代码放在“何时停止获取异常”不是一个好主意。如果你从来没有停止获得例外?

0

我相信在这个特定的案例问题可能会更广泛地涉及整个XML文档验证问题。考虑到以多个块发送数据是一个有效的情况 - 如果您使用的共享协议会为您提供类似EndOfStream标记/消息的指示,以指示发送所有数据,那将会很好。许多消息传递系统都提供内置的对消息索引/序列号等功能的支持,也许你支持的协议支持它,所以你可以在初始化连接时启用它,如果提供这样的文档,请查看文档。

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

相关链接:

+0

服务器总是发送有效的xml,我会尝试检查验证 – Racooon

+0

你使用自制通信还是一些消息系统? – sll

+0

它不是自制的沟通。我制作了服务器/客户端,但是我的服务器正在从另一台服务器(提供商)接收 – Racooon