Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 16:42   #1
frankk
 
Регистрация: 12.01.2008
Сообщений: 3
По умолчанию чтение из XML файла

Здравствуйте!
начал изучение WPF и возникла следующа проблема -

есть XML файл -
Код HTML:


 
<?xml version="1.0" encoding="utf-8" ?>
 
<HEAD>
        
        <MenuPosition>Pasta</MenuPosition>
        
        
        <Pasta>
        
        
        
        <Item1>
                <Name>"Pasta Fra Diavolo"</Name>
                        <About>"Pasta with Red Spicy Sauce"</About><Ingridients>
                        "Pasta, small shrimps,scallops, olive oil, garlic, chopped tomatoes, salt, crushed red pepper,
                         chopped fresh parsley "</Ingridients>
        </Item1>
 
        <Item2>
        <Name>"Spaghetti with Tomato Sauce "</Name><About>"Pasta with red non-spicy sauce"</About>
                <Ingridients>
                        "Spaghetti,lean ground beef, salt, white sugar, dried oregano, ground black pepper, garlic powder,
                        dried minced onion, chopped tomatoes, tomato paste, sliced mushrooms"</Ingridients>
   </Item2>
        
        <Item3><Name>"Pasta Fettuccine Alfredo"</Name><About>"Pasta with heavey cream sauce"</About>
                <Ingridients>
                        "fettuccine, milk, butter, cream cheese, Parmesan cheese, white pepper"
        </Ingridients>
                </Item3>
 
        <Item4><Name> "Pasta with white clam sauce" </Name><About> "Pasta with light cream sauce" </About>
        <Ingridients>
                "pasta, chopped onion, white clam sauce, olive oil, lemon juice, minced garlic, crushed red pepper"
        </Ingridients>
</Item4>
                </Pasta>
 
 
 
 
 
 
 
 
 
      
 
        
 
 
 
 
    
 
 
        <MenuPosition>Other food</MenuPosition>
                <Pizza>
                        <Item1><Name>"Vegetable Pizza"</Name><About>"Vegetarian Pizza"</About>
                        <Ingridients>
                                "flour, milk, eggs,salt,
                                 mayonnaise, cream cheese, dill weed, squash, mushrooms, carrots, radishes, cucumber, ripe olives,
                                shredded Cheddar cheese, mozzarella cheese"  </Ingridients>
                        
                        </Item1>
                <Item2><Name>
                        "Supreme Bagel Pizza"</Name><About>"Non-vegetarian Spicy Pizza" </About>
                        <Ingridients>
                                "flour, milk, eggs, salt, bagels, pizza sauce, pepperoni, ham,
                                bacon bits, chopped green pepper, mozzarella cheese "
                        </Ingridients>
                        </Item2>        
                        
                       
                        </Pizza>
 
 
 
     
        
        
        
        
       
 
</HEAD>
 


Есть в окне форма, на которой есть Комбо-бокс и лист-бокс.

Нужно считаь данные их этого XML файла, например, в комбо бокс.
Например, то, что стоит в
Код XML
Код HTML:
    <MenuPosition>Pasta....</MenuPosition>
нужно добавить в комбобокс. Все это должно сделаться при загузке окна -
Код HTML:
     <ComboBox IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Left" Name="MenuPos" Loaded="FillMyListBox" Margin="8,95,0,0" VerticalAlignment="Top" Width="260" Height="36"/>   
Вот мой код поиска и добавления элементов -
Код:
 
 private void FillMyListBox(object sender, EventArgs e)
        {
            XmlTextReader reader = new XmlTextReader("MenuFood.xml");
 
 
            XmlNodeType type;
 
            while (reader.Read()) {
                type = reader.NodeType;
                if (type == XmlNodeType.Element) { 
                if (reader.Name=="MenuPosition"){
                    reader.Read();
 
                    MenuPos.Items.Add(reader.Value);
 
 
 
                    }
                
                
                }
            
            
            
            }
 
            reader.Close();
        
        
        }
Когда я запускаю приложение, то оно зависает.
Подскажите, пожайлуста, в чем проблема.

У меня еще второй вопрос -
кроме элементов, стоящих в <MenuPosition>
нужно считать еще и SubElements.
К примеру, в <MenuPosition> стоит "Pasta". Потом дальше идут разновидности этого элемента , допустим, Pasta yyyy, Pasta xxxxxx, Pasta zzzzzz.....и так далее, стоящие в тегах <Item1>,<Item2>,<Item3>
Подкиньте, пожайлуста, идею, как это релизовать? Если в комбо бокс стоит "Pasta", то в лист боксе должно стоять Pasta yyyyyyy, Pasta xxxxxx, Pasta zzzzzzzzz.
Нужен ли второй ридер?
спасибо за ответы

Последний раз редактировалось frankk; 09.02.2011 в 16:54.
frankk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение XML beemoto Общие вопросы Delphi 19 16.10.2011 11:54
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49
Чтение и запись параметров в xml BioHEX Общие вопросы Delphi 2 15.01.2010 04:16
чтение простейшего XML TaTT DoGG PHP 4 27.08.2009 11:44
Чтение XML с помощью XPath Neymexa Общие вопросы .NET 0 14.04.2009 22:43