2016-03-05 39 views
0

我需要使用Xdocument而不使用Xsd來驗證選定的Xml文件。 我有一個名爲「Cheker」的文件和要檢查的文件。 例如我需要比較層次結構以及檢查器文件中名稱的多少元素。 如果我在「檢查」文件3頁我需要chek沒有更多的選定的文件。 我嘗試過一個數組,但是很複雜,像這樣 謝謝!!C#驗證Xdocument文件

  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!!";