Le code que j'ai jusqu'à maintenant ressemble à ceci.Comment lire un élément XML complet avec ses enfants tout en obtenant des données de NetworkStream?
using (XmlReader r = XmlReader.Create(stream, new XmlReaderSettings() { Async = true }))
{
while (await r.ReadAsync())
{
switch (r.NodeType) {
case XmlNodeType.Element:
if (r.IsEmptyElement) // no attributes
{
OnReceive("<" + r.Name + " />");
}
else // has attributes
{
OnReceive("<" + r.Name + ">");
while (r.MoveToNextAttribute())
{
OnReceive(r.Name + " -> " + r.Value);
}
}
break;
}
}
}
Mon XML ressemble à ceci.
<?xml version='1.0' encoding='UTF-8'?>
<start>
<a>
<b></b>
<c>
<d>TEXT01</d>
<d>TEXT01</d>
<d>TEXT01</d>
<d>TEXT01</d>
</c>
<e>
<f>TEST01</f>
</e>
<g/>
<h/>
</a>
...
Dès que je frappe l'élément XML <a>
Je voudrais lire à la fin (jusqu'à ce que je frappe </a>
), puis déclencher un événement avec tout l'élément et ses enfants.
Comment faire? Y a-t-il un mécanisme en place qui me permet de lire le flux comme ça (attendre la fin d'un élément) et ensuite continuer avec d'autres parties XML?
Avez-vous regardé [ReadSubtree] (http://msdn.microsoft.com/EN-US/library/55c7aswf (v = VS.110, d = hv.2) .aspx)? –