Как я могу извлечь из xml-файла требуемую информацию в listbox с помощью combobox?

#c# #xml #wpf

#c# #xml #wpf

Вопрос:

Я пытаюсь создать эту программу, которая извлекает имена хоккеистов по команде из XML-файла. Выбор должен быть сделан путем выбора команды из combobox. joukkuenimi — это команда в xml-файле. Пока я могу получить игроков из xml-файла, но я не знаю, как указать команду в коде.

   public MainWindow()
        {
            InitializeComponent();

            cmbJoukkueet.Items.Add("saipa");
            cmbJoukkueet.Items.Add("sport");

        }
        XmlReader lukija = XmlReader.Create("SMLiiga.xml");
        private void cmbJoukkueet_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            lstPelaajat.Items.Clear();





            if (cmbJoukkueet.SelectedIndex == 1)
            {


                joukkueenPelaajatListaLaatikkoon();


            }
             else if (cmbJoukkueet.SelectedIndex == 0)
            {


                joukkueenPelaajatListaLaatikkoonn();


            }

            lukija.Close();
            lukija = XmlReader.Create("SMLiiga.xml");
        }

        void joukkueenPelaajatListaLaatikkoon()
        {

            while (lukija.Read())
            {
                if ((lukija.NodeType == XmlNodeType.EndElement amp;amp; lukija.Name == "Joukkue"))
                {
                   break; 
                }

                if (lukija.Name == "sukunimi" amp;amp; lukija.NodeType == XmlNodeType.Element)
                {
                    lukija.Read();
                    lstPelaajat.Items.Add(lukija.Value);
                }
            }
        }

        void joukkueenPelaajatListaLaatikkoonn()
        {

            while (lukija.Read())
            {
                if ((lukija.NodeType == XmlNodeType.EndElement amp;amp; lukija.Name == "Joukkue"))
                {
                    break; 
                }

                if (lukija.Name == "sukunimi" amp;amp; lukija.NodeType == XmlNodeType.Element)
                {
                    lukija.Read();
                    lstPelaajat.Items.Add(lukija.Value);
                }
            }
        }
    }
}
  

  <Joukkue>
     <joukkuenimi>Saipa</joukkuenimi>
     <Pelaajat>
     <Pelaaja>
        <sukunimi>Torikka</sukunimi>
        <pelNro>2</pelNro>
     </Pelaaja>
  

Я подумал, добавив «» в cmbJoukkueet.Элементы, которые это сработало бы, но нет.

Комментарии:

1. Вы можете попробовать вложить проблему. Итак, вы сначала выбираете команду, а затем помещаете игроков их команды путем инкапсуляции.

Ответ №1:

На самом деле мне удалось решить задачу самостоятельно. Мне потребовалось несколько часов, но я это сделал, и теперь мне стыдно за этот беспорядок кода.

Комментарии:

1. Не могли бы вы рассказать нам, что вы сделали? Может избавить кого-то другого от нескольких часов ломания головы.