XmlTextReader извлечь определенную информацию - C#

Узнай цену своей работы

Формулировка задачи:

нужно получить поочереди информацию из хмл файла
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<table>
  <row row="1">
    <cell cell0="0" />
    <cell cell1="142" />
    <cell cell2="147" />
    <cell cell3="2400" />
  </row>
  <row row="2">
    <cell cell0="0" />
    <cell cell1="141" />
    <cell cell2="146" />
    <cell cell3="3720" />
  </row>
  <row row="3">
    <cell cell0="0" />
    <cell cell1="139" />
    <cell cell2="147" />
    <cell cell3="4680" />
  </row>
  <row row="4">
    <cell cell0="0" />
    <cell cell1="142" />
    <cell cell2="150" />
    <cell cell3="1560" />
  </row>
</table>
есть пример на c#
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Файлы XML (*.xml)|*.xml"; if (dlg.ShowDialog() ! = DialogResult.OK)
    return;
 
XmlTextReader reader = null;
orders.Clear();
 
try
{
    reader = new XmlTextReader(dlg.FileName);
    reader.WhitespaceHandling = WhitespaceHandling.None; // пропускаем пустые узлы
    while (reader.Read())
        if (reader.NodeType == XmlNodeType.Element)
            if (reader.Name == "Заказ")
            {
                 Order order = new Order(reader.GetAttribute("Адрес"), DateTime.Parse(reader.GetAttribute("Дата"))); 
 
                 // получаем товары в заказе
                 while (reader.Read() && reader.Name == "Товар")
                     order.AddGood(reader.GetAttribute("Название"), float.Parse(reader.GetAttribute("Цена")));
                 orders.Add(order);
            }
            ShowOrders();
}
catch (Exception ex)
{
    MessageBox.Show("Ошибка: " + ex.Message);
}
finally
{
    if (reader != null)
        reader.Close();
}
но как прикрутить к моему случаю не могу понять

Решение задачи: «XmlTextReader извлечь определенную информацию»

textual
Листинг программы
XmlTextReader reader = new XmlTextReader ("newbooks.xml");
            reader.WhitespaceHandling = WhitespaceHandling.None; // пропускаем пустые узлы
            while (reader.Read())
            {
               
                    if (reader.Name == "row" || reader.Value == "1")
                    {
                        reader.MoveToAttribute("cell0");
 
                        this.textBox11.Text = reader.Value.ToString();
                        this.textBox10.Text = reader.Name.ToString();
                        
                    }
                
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы