Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Разбор XML дерева


Автор: denozavr 13.9.2010, 09:58
Есть документ XML вида:
[code]
<?xml version="1.0" encoding="utf-8"?>
<Questions>
  <Question isMulti="false">
    <NewQuestion>
      Если сделать объявление int i=11; чему будет равно значение выражения i/5?
    </NewQuestion>
    <VariantOtveta isPravel="false">
      2
    </VariantOtveta>
    <VariantOtveta isPravel="false">
      2,2
    </VariantOtveta>
    <VariantOtveta isPravel="true">
      2.2
    </VariantOtveta>
    <VariantOtveta isPravel="false">
      Oшибка компилятора
    </VariantOtveta>
  </Question>
  <Question isMulti="false">
    <NewQuestion>
      Использование оператора default совместно с оператором switch…
    </NewQuestion>
    <VariantOtveta isPravel="false">
      вредно
    </VariantOtveta>
    <VariantOtveta isPravel="true">
      желательно
    </VariantOtveta>
    <VariantOtveta isPravel="false">
      обязательно
    </VariantOtveta>
  </Question>
  <Question isMulti="false">
    <NewQuestion>
      Укажите верные утверждения
    </NewQuestion>
    <VariantOtveta isPravel="false">
      Если список инициализации содержит начальных значений меньше, чем элементов массива, то это ошибка
    </VariantOtveta>
    <VariantOtveta isPravel="false">
      Индексы массива могут быть произвольного типа
    </VariantOtveta>
    <VariantOtveta isPravel="false">
      Массив может хранить много различных типов данных
    </VariantOtveta>
    </Question>
</Questions>
[\code]
Хочу сделать тест на WPF,идею знаю,но вот как разобрать правильно XML дерево непойму....
Вот допустим я получаю корневой элемент,и его дочерний:
[code]
public partial class MainWindow : Window
    {
        XDocument doc;
        public MainWindow()
        {
            InitializeComponent();
            doc = XDocument.Load(@"../../questions.xml");
            if (doc != null)
            {
                var Question = doc.Root.Elements();//Получили все элементы Question
            }
           
        }
[\code]
Дальше не пойму как идти по его вложенным элементам и проверять...Знаю есть еще 2 класс XElemetn,XAttribute,работал с этими классами с более простыми Xml-файлами,без вложенных элементов...кто подскажет идею?

Автор: mrbrooks 13.9.2010, 14:11
denozavr, я бы на вашем месте изучил Linq2XML. Недолго учить, удобно использовать.

Автор: denozavr 13.9.2010, 14:26
Цитата(mrbrooks @ 13.9.2010,  14:11)
denozavr, я бы на вашем месте изучил Linq2XML. Недолго учить, удобно использовать.

Спасибо,а литературу или статью можешь подкинуть,мне до субботы сделать надо....буду благодарен!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)