2010-11-03 197 views
0

我需要从XmlNodeList中筛选出节点的最有效方法。 XmlNodeList是我从dtSearch取回的内容。 该列表包含在指定的searchPhrase上找到的项目列表。 我想过滤掉所有不属于我想查看的网站的项目。 有关结果被发现存储在结果的路径是什么网站,我可以通过访问它的信息:从XmlNodeList中筛选节点(Sytem.Xml。XmlNodeList)

// 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; 
} 

比方说,我想筛选出具有scPath包含字符串的所有节点“XXY “,在我进入遍历列表中所有节点的foreach之前,是否可以这样做?例如,我可以用Linq做这个吗?

回答

2

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

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

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

+0

好的,很好。是否也可以确保路径不存在于scPath节点中?例如,我希望过滤掉包含以下scPath =“xxx/yyy/zzz /”的所有项目。因此,路径为“xxx/yyy/zzz/aaa/aaa/zzz”的项目也不在列表中。 – Younes 2010-11-03 09:26:44

+0

别管我最后一个问题,我非常感谢你的解决方案! – Younes 2010-11-03 09:35:41