Как я могу проверить, может ли XmlReader читать содержимое перед вызовом Read ()? - PullRequest
1 голос
/ 01 ноября 2011

Я прочитал xml-строку, используя XmlReader с кодом:

  XmlReader reader = XmlReader.Create(new StringReader(xmlString));      
  while (reader.Read())
  {
    // some code
  }

Но если xmlString равно "", тогда у меня XmlException в reader.Read(): корневой элемент не найден.Как я могу проверить, может ли XmlReader читать содержимое или нет раньше reader.Read()?

1 Ответ

7 голосов
/ 01 ноября 2011

Но если xmlString равен ""

Что ж, это недопустимый XML, поэтому это исключительная ситуация, когда было бы лучше выбросить исключение, чем продолжать читать что-то, что не является тем, чем оно претендует (XML). Таким образом, вы можете просто перехватить это исключение и сообщить пользователю, что произошла ошибка. Если он отвечает за строку ввода, скажите ему, что он ввел неверный XML, который не может быть обработан. А если это ты, извинись, сказав, что что-то очень плохое пошло не так.

Это означает, что класс XmlReader ожидает допустимый XML в качестве ввода.

...