Ich spiele gerade mit dem Parsen eines XMPP-XML-Streams. Das Schwierige an dem XML-Stream ist, dass das Start-Tag nicht bis zum Ende der Sitzung geschlossen wird, d. H. Ein vollständiges DOM wird nie empfangen.
%Vor%Ich muss die XML-Elemente aus dem Stream lesen, ohne darauf zu achten, dass das Root-Element nicht geschlossen wurde.
Idealerweise würde das funktionieren, aber es funktioniert nicht und ich nehme an, dass es so ist, weil der Leser darauf wartet, dass das Wurzelelement geschlossen wird.
%Vor%Der Code unten (den ich mir von Jacob ausgeliehen habe Reimers ) funktioniert zwar, aber ich hoffe, dass es einen effizienteren Weg gibt, der nicht das Erstellen eines neuen XmlReader und das String-Parsing beinhaltet.
%Vor% Sie sollten nicht mit den Strings arbeiten müssen; Sie sollten in der Lage sein, XElement.Load
auf der Teilstruktur zu verwenden:
Und beachten Sie, dass dies nicht wirklich ein "neuer" XML-Reader ist - er ist stark an den äußeren Leser gebunden (aber auf eine Menge von Knoten beschränkt).