使用LINQ检查XML元素是否存在

时间:2013-09-25 14:36:53

标签: c# xml linq

我正在将XML文档解析为c#项目,以检查是否存在名为“Feature”的元素。 在c#中,我使用Feature Element中的内容来确定是否应该运行if语句。

XML

<Projects>
 <Project>
   <Name>Test</Name>
    <Feature>AutoDev;AutoRev</Feature>
 </Project>
</Projects>

C#

var feature = (from project in XDocument.Load(xmlPath).Descendants("Project")                                     
where project.Element("Name").Equals(Project)                                     
select project.Element("Feature").Value).Single().Split(';');

if (names.Contains("Test"))
      //then load ticket variables....
   if (feature.Contains("AutoDev"))
      //then do this....

现在我收到一个错误:  序列不包含任何元素

在加载Feature时建议使用any方法来检查元素是否存在于数组中。不知道如何实现这一点。

2 个答案:

答案 0 :(得分:3)

project.Element("Name").Equals(ev.PortfolioProject)

应该是

project.Element("Name").Value.Equals(ev.PortfolioProject)
                        ^

答案 1 :(得分:1)

我认为你错过了.Value

中的project.Element("Name")

试试这个:

var feature = (from project in XDocument.Load(xmlPath).Descendants("Project")                                     
where project.Element("Name").Value.Equals(ev.PortfolioProject)                                     
select project.Element("Feature").Value).Single().Split(';');