我正在尝试使用HtmlAgilityPack和Xpath与C#(.NET 4)构建简单的搜索引擎。 我想找到包含用户定义的搜索词的每个节点,但我似乎无法获得正确的XPath。 例如:使用Xpath和HtmlAgilityPack查找包含特定单词或单词的所有含innertext的元素
<HTML>
<BODY>
<H1>Mr T for president</H1>
<div>We believe the new president should be</div>
<div>the awsome Mr T</div>
<div>
<H2>Mr T replies:</H2>
<p>I pity the fool who doesn't vote</p>
<p>for Mr T</p>
</div>
</BODY>
</HTML>
如果指定的搜索内容是“T先生”我想以下节点:<H1>
,第二<div>
,<H2>
和第二<p>
。 我已经尝试了很多doc.DocumentNode.SelectNodes("//text()[contains(., "+ searchword +")]");
的变体,但我似乎总是在整个DOM中的每个节点。
任何提示让我在正确的方向将非常感激。
你的第二个表达式匹配正是OP说,他尝试(除了额外的'..'),所以我不知道他为什么认为它不起作用。 –
@lwburk:它“没有用,因为它选择*文本节点*,他需要他们的父母。 –
对,我明白了,但它肯定不会选择*”整个DOM中的每个节点*“(声明) –