Я пишу сетевой сервер на C # .NET 4.0. Существует сетевое соединение TCP / IP, по которому я могу получить полные элементы XML. Они прибывают регулярно, и мне нужно немедленно их обработать. Каждый элемент XML сам по себе является полным документом XML, поэтому он имеет открывающий элемент, несколько подузлов и закрывающий элемент. Нет единого корневого элемента для всего потока. Поэтому, когда я открываю соединение, я получаю следующее:
<status>
<x>123</x>
<y>456</y>
</status>
Затем, через некоторое время, оно продолжается:
<status>
<x>234</x>
<y>567</y>
</status>
И так далее. Мне нужен способ прочитать полную строку XML, пока элемент состояния не будет завершен. Я не хочу делать это с помощью методов чтения простого текста, потому что я не знаю, в каком формате поступают данные. Я никоим образом не могу ждать, пока весь поток не закончится, как это часто описывается в другом месте. Я пытался использовать класс XmlReader, но его документация странная, методы не работают, первый элемент теряется, и после отправки второго элемента возникает исключение XmlException, потому что есть два корневых элемента.