Проверьте значение текста в xml - PullRequest
2 голосов
/ 19 октября 2011

У меня есть XML как

<numbers>
<number>1</number>
<number>2</number>
<number>abc</number>
</numbers>

Во время сериализации, как определить, что элемент <number> имеет текст как abc . Мне нужно разрешить только целые числа, а не текст.

Ответы [ 2 ]

0 голосов
/ 19 октября 2011

В зависимости от того, что вы понимаете под "разрешением только промежуточных соединений", вам может быть достаточно стандартного поведения сериализации .net xml. Если числовой член в вашем классе определен как int, произойдет исключение при десериализации предоставленного вами фрагмента XML:

[XmlRoot("numbers")]
public class Numbers
{
  [XmlElement("number")]
  public int[] Numbers;
}

Если вы хотите больше контролировать процесс сериализации, вы можете реализовать интерфейс IXmlSerializable.

0 голосов
/ 19 октября 2011

Предполагая, что вы застряли именно с тем, что вы спрашиваете (и что обработка XML не является проблемой), вы можете использовать int.TryParse, что позволит вам ввести строку и вывести полученное число, если оно является числом - возвращаемое значение будет указывать, был ли анализ успешным или нет, и, следовательно, определять, было ли исходное значение на самом деле числом.

...