过滤掉记录中的xml节点,其中包含特定数据

时间:2013-10-04 13:32:26

标签: c# xml linq-to-xml

我需要在c#中从数组列表创建xml文件,这样工作正常。我不需要在xml中为记录创建节点,其值为#in record。所以说如果#是这样的话,那就不要创建节点,但是如果数组列表中的值是#以外的字符串,那么创建节点并在其中存储值。

非常感谢

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......");
}

1 个答案:

答案 0 :(得分:1)

不确定#表示什么,但是说它是Person中的值之一。在我的示例中,我选择了STAFFID,但它可能是您希望过滤的UWL对象中的任何其他值或其他值:

将您的myList.Select更改为:

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)
             )                      
          )