2010-11-03 201 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