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

本文关键字:XML 元素 存在 是否 LINQ 检查 使用 | 更新日期: 2023-09-27 18:32:55

我正在将XML文档解析为c#项目,以检查是否存在名为"Feature"的元素。在 c# 中,我使用 Feature 元素中存在的内容来确定是否应该运行 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 方法来检查数组中是否存在该元素。不知道如何实现这一点。

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

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

应该是

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

我认为您错过了project.Element("Name")中的.Value

试试这个:

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(';');