"Element" - invalid XmlNodeType

I do not understand. I really don't get ReadEndElement. I assume that after each ReadStartElement you need to close the reader to go to the next start item, and if there are no more start items, close ReadEndElement for all other items?

Sample returned 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();

I ignore one of the (ENCODING) elements that have been reconfigured because I don't need it ... not sure if this has anything to do with it. Perhaps I need to read each element regardless of whether I want to use it or not.

+3
source share
2 answers

You should read every node (attribute, element, ...) in the document.

, ( ) XmlReader.Skip.

+6

XmlSerializer. XML, <br/> HTML, .

<Event>
    <Id>1</Id>
    <Title>The first Sicknote with Chris Liberator</Title>
    <Copy>
     Sicknote - Techno vs Dubstep <br />
      ------------------------------------<br />
      <br /><br />
      Thursday 8th October - 11pm - 4am
    </Copy>
    <Date>2009-10-08T10:00:00</Date>
    <FlierImage>1.jpg</FlierImage>
  </Event>
+1

Source: https://habr.com/ru/post/1704998/


All Articles