Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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# 如何在接收到来自网络流的XMLTextReader的节点时处理它们(一次一个片段)?_C#_Xml Parsing_Xmltextreader - Fatal编程技术网

C# 如何在接收到来自网络流的XMLTextReader的节点时处理它们(一次一个片段)?

C# 如何在接收到来自网络流的XMLTextReader的节点时处理它们(一次一个片段)?,c#,xml-parsing,xmltextreader,C#,Xml Parsing,Xmltextreader,我有一个使用XML通过持久TCP套接字进行通信的设备。命令以XML结构发送给它,响应以XML形式返回。设备输出一个根元素打开,例如连接时。对命令或查询的每个响应都将返回唯一的XML片段。我有以下代码来使用XMLTextReader将流解析为节点 我正计划构建一个状态机来处理检测到的节点;最终目的地用C语言转换成数据类,供主程序使用。是否有现有的.NET技术可以处理这些节点,并将我从手动编码状态机中解救出来,以处理返回的XML片段 我确实可以访问架构文件,但我认为我不能使用documemt类,因为

我有一个使用XML通过持久TCP套接字进行通信的设备。命令以XML结构发送给它,响应以XML形式返回。设备输出一个根元素打开,例如连接时。对命令或查询的每个响应都将返回唯一的XML片段。我有以下代码来使用XMLTextReader将流解析为节点

我正计划构建一个状态机来处理检测到的节点;最终目的地用C语言转换成数据类,供主程序使用。是否有现有的.NET技术可以处理这些节点,并将我从手动编码状态机中解救出来,以处理返回的XML片段


我确实可以访问架构文件,但我认为我不能使用documemt类,因为数据源不是完整的字符串或文件,而是网络流。

欢迎使用堆栈溢出!仅供参考,您不应使用新的XmlTextReader或XmlTextWriter。自.NET 2.0以来,它们一直被弃用。使用XmlReader.Create或XmlWriter.Create代替。这是处理XML的简单方法。感谢您的快速响应。在XMLTextReader for NET 2.0上的这些评论对我来说就像是在使用NET 2.0框架时应该做的事情。但这很容易改变。至于LINQ to XML,我想使用它,但我真的可以用NetworkStream来实现吗?您使用的是.NET的哪个版本?使用的是NET3.5,所以可以访问LINQ。在调用LINQ时,更担心流计时和没有完整的格式良好的XML片段。
deviceClient.Connect(ipRemoteEndPoint);
deviceStream = deviceClient.GetStream();

XmlTextReader reader = null;
reader = new XmlTextReader(deviceStream);
while (reader.Read())
{
   switch (reader.NodeType)
   {
      case XmlNodeType.Element: // The node is an Element.
      ....
   }
}