Как я могу проверить, что XmlReader может читать содержимое перед вызовом Read()?

#c# #.net #xml #xmlreader

#c# #.net #xml #xmlreader

Вопрос:

Я читаю xml-строку с помощью XmlReader с кодом:

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

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

Ответ №1:

Но если xmlString равно «»

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

Это означает, что класс XmlReader ожидает действительный XML-файл в качестве входных данных.