«Элемент» является недопустимым XmlNodeType - PullRequest
3 голосов
/ 19 марта 2009

Я не понимаю этого. Я действительно не получаю 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), перенастроенный, потому что он мне не нужен ... не уверен, имеет ли это какое-либо отношение к этому. Может быть, мне нужно прочитать каждый элемент независимо от того, хочу я его использовать или нет.

Ответы [ 2 ]

6 голосов
/ 19 марта 2009

Вы должны прочитать каждый узел (атрибут, элемент, ...) в документе.

Если читатель расположен на элементе, вы можете пропустить его (и все его подузлы) с помощью XmlReader.Skip .

0 голосов
/ 11 октября 2016

Я испытываю эту ошибку при попытке десериализации с использованием 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...