Я не понимаю этого. Я действительно не получаю ReadEndElement. Я предполагаю, что после каждого ReadStartElement вам нужно закрыть ридер, чтобы перейти к следующему элементу start, а если больше нет элементов start, закрыть ReadEndElement для всех остальных элементов?
Пример возвращенного XML:
<Envelope>
<Body>
<RESULT>
<SUCCESS>true</SUCCESS>
<SESSIONID>dc302149861088513512481</SESSIONID>
<ENCODING>dc302149861088513512481
</ENCODING>
</RESULT>
</Body>
</Envelope>
reader.Read();
reader.ReadStartElement("Envelope");
reader.ReadStartElement("Body");
reader.ReadStartElement("RESULT");
reader.ReadStartElement("SUCCESS");
reader.ReadEndElement();
reader.ReadStartElement("SESSIONID");
_sessionID = reader.ReadString();
reader.ReadEndElement();
reader.ReadEndElement(); <-- error here
reader.ReadEndElement();
reader.ReadEndElement();
Я игнорирую один из элементов (ENCODING), перенастроенный, потому что он мне не нужен ... не уверен, имеет ли это какое-либо отношение к этому. Может быть, мне нужно прочитать каждый элемент независимо от того, хочу я его использовать или нет.