Разбор XML в Windows Phone 7 - PullRequest
       0

Разбор XML в Windows Phone 7

1 голос
/ 16 декабря 2011
<A xmlns="http://www.aaa.com/bbb/"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">    
<B>
  <aa>AUH</aa><bb>5</bb><cc>Abu</cc>
</B>
<B>
  <aa>AUH</aa><bb>7</bb><cc>ghi</cc>
</B>
  <ServiceResponse><ErrorMessage i:nil="true"/><ExecutionStatus>SUCCESS</ExecutionStatus></ServiceResponse>
</A>

У меня есть XML-код, подобный приведенному выше, и я создал классы для A, B и ServiceResponse.

И я пытаюсь выполнить синтаксический анализ, используя следующий код:

XmlSerializer ser = new XmlSerializer(typeof(A));
objAirportListResponse = ser.Deserialize(new StringReader(str)) as A;

В приведенном выше коде "str" ​​- это строка, которая содержит XML выше.

Я получаю сообщение об ошибке, как показано ниже:

В XML-документе (1, 2) есть ошибка (система.InvalidOperationException)

Если я удаляю xmlns = "http://www.aaa.com/bbb/" xmlns: i =" http://www.w3.org/2001/XMLSchema-instance" из XML, я получил ту же ошибку из-за i: nil = "true».Затем я удалил xmlns = "http://www.aaa.com/bbb/" xmlns: i =" http://www.w3.org/2001/XMLSchema-instance" и i: nil = "true". Я попытался проанализировать XML, на этот раз он успешно проанализировал класс.

Но удалив xmlns= "http://www.aaa.com/bbb/" xmlns: i =" http://www.w3.org/2001/XMLSchema-instance" и i: nil = "true" - неправильный способ. Пожалуйста, помогите мне, как разобрать приведенный выше пример.

Заранее спасибо.

1 Ответ

0 голосов
/ 17 декабря 2011

Я согласен с Уиллом в комментариях выше о том, что подход Linq-to-XML более надежен, но эта ссылка, вероятно, будет работать для вас:

Использование нескольких пространств имен при десериализации с помощью .NET XmlSerializer

Вам придется приписать свой класс атрибутами Xml, прежде чем десериализовать его, чтобы получить данные для чтения. Я предлагаю некоторое время поработать иначе - попробуйте сериализовать ваш класс в XML ина протяжении всего процесса настройки до тех пор, пока вы не получите именно тот результат, который вы хотите прочитать, а затем попытаетесь прочитать «реальные» данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...