这会做我认为...
var nodes2 = doc.DocumentNode.SelectNodes("//div[contains(.//text(), 'Hello World')]");
这可能是一个更好的解决方案:
var nodes3 = doc.DocumentNode.SelectNodes("//text()[contains(., 'Hello World')]/ancestor::div[1]");
或使用 Linq-to-XML 表示法:
var nodes =
doc.DocumentNode.Descendants("div")
.Where(
div =>
div.DescendantsAndSelf("text()").Where(text => text.InnerHtml.Contains("Hello World")).Any())
或者
var nodes4 = from div in doc.DocumentNode.Descendants("div")
from text in div.DescendantsAndSelf("text()")
where text.InnerText.Contains("Hello World")
let firstParent = text.AncestorsAndSelf("div").First()
select firstParent;