Я получаю «куски» xml в потоке ответов HTTP. Каждый блок представляет собой полную мини-иерархию XML, такие как:Как читать в XElement непрерывный поток XML по HTTP
<chunk1>
<id>1</id>
<data>blah blah-blah</data>
</chunk1>
...
(30 seconds later)
...
<chunk2>
<id>2</id>
<data>blah blah-blah</data>
</chunk2>
...
(30 seconds later)
...
<chunk1>
<id>3</id>
<data>blah blah-blah</data>
</chunk1>
Что такое лучший способ в C#, чтобы прочитать каждый «кусок» в XElement для дальнейшей обработки? Каждый кусок может иметь другой корневой элемент.
Я видел ответы на similar questions. Однако ответы не казались оптимальными, поскольку они включали обработку каждого узла. Я просто хочу прочитать поток до тех пор, пока не доберусь до закрывающего узла, соответствующего начальному блоку узла, не передам весь фрагмент в XElement, вызовет метод для его обработки, а затем дождитесь следующего фрагмента.
Чтение ломти в 'StringBuilder' или какой-то список не хватает? – Mrchief
Мне нужно было знать, когда прекратить чтение (т. Е. Когда был достигнут закрывающий корневой элемент)? – Jimmy
Ох, я вижу сейчас. Итак, возможно ли, что ответный кусок может содержать частичный кусок для следующих или предыдущих кусков? Если нет (т. Е. Кусок всегда является единственным узлом), тогда все становится проще. – Mrchief