从XmlNodeList中过滤节点(Sytem.Xml.XmlNodeList)

时间:2010-11-03 09:18:07

标签: c# .net xml linq filtering

我需要从XmlNodeList中过滤出节点的最有效方法。 XmlNodeList是我从dtSearch获得的。 该列表包含在指定的searchPhrase上找到的项目列表。 我想过滤掉所有不属于我想要查看的网站的项目。 有关找到结果的网站的信息存储在结果的路径中,我可以使用以下方式访问它:

// Get a list of Item nodes
XmlNodeList list = xmlResult.SelectNodes("/sitecore/result/item");

foreach (System.Xml.XmlNode node in list)
{ 

   XmlNode thisScPath = node.SelectSingleNode("scPath");
   if (thisScPath == null)
     continue;  
}

假设我想用包含字符串“xxy”的scPath过滤掉所有节点,是否可以在我进入foreach之前执行此操作,其中我遍历列表中的所有节点?例如,我可以使用Linq吗?

1 个答案:

答案 0 :(得分:2)

您可以在XPath表达式中添加谓词,例如

/sitecore/result/item[scPath!='xxy']

将找到所有没有子节点“scPath”的项目节点,其值为“xxy”。