
2.3. Контроль типов данных при чтении Xml-документа
Класс XmlReader также позволяет считывать данные со строгим контролем типов. Для этого используются методы ReadElementContentAs... ReadElementContentAsDouble(), ReadElementContentAsBoolean() и другие. Далее показано как можно считывать значение в десятичном формате и выполнять вычисления. В примере выбирается значение цены книги, которое увеличивается на 25%.
Создадим еще одну кнопку с надписью New Price, а в ее обработчике напишем код:
private void btnNewPrice_Click(object sender, EventArgs e)
{
//Обработчик кнопки NewPrice - контроль типов
richTextBox1.Clear();
XmlReader rdr = XmlReader.Create("book2.xml");
while (rdr.Read())
{
if (rdr.NodeType == XmlNodeType.Element)
{
if (rdr.Name == "PRICE")
{
decimal price = rdr.ReadElementContentAsDecimal();
richTextBox1.AppendText("Curent Price = "+ price+ "\r\n");
price += price * (decimal)0.25;
richTextBox1.AppendText("New Price = " + price + "\r\n\r\n");
}
else if (rdr.Name=="TITLE")
richTextBox1.AppendText(rdr.ReadElementContentAsString()+"\r\n");
}
}
rdr.Close();
}
Если это значение не может быть преобразовано к требуемому типу, возбуждается исключение FormatException.
Компилируем и запускаем на выполнение наш проект.
В результате получаем сообщение об ошибке. Причина – текст элемента имеет вид:
<PRICE>$10.95</PRICE>
Исправим все элементы <PRICE> 10.95</PRICE>,
а документ сохраним под именем ("book3.xml");
В результате получим:
3. Создание xml-документа в Visual Studio
Для создания XML-файла в среде Visual Studio нужно в меню File выбрать New->File. В окне создания выбрать Xml-файл
Откроется Xml-редактор, в котором можно вводить элементы Xml. Редактор автоматически проверяет ошибки и подставляет закрывающие теги. Созданный файл можно сохранить в нужном месте на диске командой SaveXmlFile.xml As...