2016-03-05 2 views
0

Мне нужно проверить выбранный файл Xml с помощью Xdocument без Xsd. У меня есть файл с именем «Cheker» и файл для проверки. Например, мне нужно сравнить иерархию и количество элементов по имени из файла checker. если у меня есть в файле «checker» 3 страницы, мне нужно, чтобы в этом файле больше не было файлов. Я пробовал с массивом, но мне очень сложно это сделать спасибо!C# Validate Xdocument File

  XElement pageElement = metadataFile.Root.Element("Pages"); 
      int cntPage = ((IEnumerable<XElement>)pageElement.Elements()).Count(); 
      if (cntPage < 1 || cntPage > 3) errorDetails += "Number of Pages wrong!!"; 
+1

Это не слишком сложно, ИМО. Каким образом вы ожидаете более простого? – Sakura

+0

какая команда для чтения Xdocument и копирования с иерархией в массив, для проверки иерархии и подсчета конкретных элементов? – Colombus

+0

Возможно, полезно показать короткий пример просматриваемого XML-файла и код, который вы использовали для создания элемента metadataFile. Пожалуйста, подумайте над редактированием вашего вопроса, чтобы показать это. –

ответ

0

Elements() already returns IEnumerabl<XElement>. Таким образом, явное приведение на вторую строке коды не требуется:

int cntPage = pageElement.Elements().Count(); 

Какого стиль использовать это вопрос предпочтений здесь, но весь фрагмент кода может быть переписана, чтобы быть следующим:

int cntPage = metadataFile.Root 
          .Element("Pages") 
          .Elements() 
          .Count(); 
if (cntPage < 1 || cntPage > 3) 
    errorDetails += "Number of Pages wrong!!";