2013-10-04 110 views
1

我需要在c#中的數組列表中創建xml文件,該文件工作正常。我不需要在xml中創建節點,它的值將在#記錄中創建。所以說例如#是這個然後不創建節點,但如果數組列表中的值是#字符串以外的#然後創建節點和存儲值在它。過濾掉記錄中的特定數據的xml節點

千恩萬謝

public void generateXMLFile(List<UWL> myList) 
{   
     XDocument objXDoc = new XDocument(
     new XElement("Institution", 
     new XElement("RECID", myList[0].recid), 
     new XElement("UKPRN", myList[0].UKPRN), 
     myList.Select(m => new XElement("Person", 
      new XElement("STAFFID", m.STAFFID), 
      new XElement("OWNSTAFFID", m.OWNSTAFFID), 
      new XElement("ACTCHQUAL", m.ABLWELSH) 
      )      
     ) 
     ) 
     ); 

     objXDoc.Declaration = new XDeclaration("1.0", "utf-8", "true"); 
     // 
     objXDoc.Save(@"C:\Test\generated.xml"); 

     //Completed.......// 
     MessageBox.Show("Process Completed......"); 
} 
+0

我讀數據:

更改myList.Select到數組列表並創建xml的節點,現在如果下一個數據是數組列表中的#,那麼不要創建節點,否則創建並跳轉到下一個 – toxic

+0

您實際上是循環遍歷代碼中的列表(並且未顯示我們)嗎? – doctorlove

+0

@doctorlove myList.Select(m => new XElement'將在那裏添加XElement的數組。 –

回答

1

不知道代表什麼#,但說它是在人的價值之一。在我的例子我挑,STAFFID,但它可以是任何你想過濾他人或在您的UWL對象的其他值的方式:從C#

myList 
.Where(m => m != null) 
.Where(m => m.STAFFID != value) 
.Select(m => new XElement("Person", 
      new XElement("STAFFID", m.STAFFID), 
      new XElement("OWNSTAFFID", m.OWNSTAFFID), 
      new XElement("ACTCHQUAL", m.ABLWELSH) 
      )      
     ) 
+0

好的如果我說,不要創建空值的節點,或者如果從xml文檔中刪除所有節點,其中值是null – toxic

+0

@toxic當你說'不要爲null值創建節點'什麼是空m?然後你做另一個'.Where(m => m!= null)' –