Tôi đang cố gắng xây dựng một công cụ tìm kiếm đơn giản bằng cách sử dụng HtmlAgilityPack và Xpath với C# (.NET 4). Tôi muốn tìm mọi nút chứa từ tìm kiếm do người dùng xác định, nhưng dường như tôi không thể có được quyền XPath. Ví dụ:Sử dụng Xpath và HtmlAgilityPack để tìm tất cả các phần tử có innertext có chứa một từ hoặc từ cụ thể
<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>
Nếu searchword quy định là "Mr T" Tôi muốn các nút sau: <H1>
, Thứ hai <div>
, <H2>
và thứ hai <p>
. Tôi đã thử nhiều biến thể của doc.DocumentNode.SelectNodes("//text()[contains(., "+ searchword +")]");
nhưng tôi luôn luôn dường như gió lên với mỗi nút duy nhất trong toàn bộ DOM.
Bất kỳ gợi ý nào để đưa tôi đi đúng hướng sẽ rất được đánh giá cao.
biểu hiện thứ hai của bạn phù hợp chính xác những gì OP nói rằng ông đã thử (ngoại trừ phần bổ sung '..'), vì vậy tôi không chắc tại sao anh ta nghĩ nó không hoạt động. –
@ lwburk: Nó "không hoạt động, bởi vì nó chọn * nút văn bản * và anh ấy cần bố mẹ. –
Phải, tôi hiểu, nhưng chắc chắn không chọn *" mọi nút trong toàn bộ DOM "* ( –