2017-06-14 32 views
0

我有以下的HTMLHTMLAgilityPack的XPath需要

<td> 
<input type="button" /> 
</td> 
<td> 
<a href="somelink">blah blah shared</a> 
<a href="somelink"></a> 
<a href="somelink">blah blah post</a> 
</td> 
<td> 
<a href="somelink">blah blah </a> 
<a href="somelink">some text</a> 
<a href="somelink">more text</a> 
</td> 

現在。我需要的XPath返回包含「TD」元素「A」的標籤包含字「後」和「共享」

我認爲它有類似 // tr [td [1] [。 ='post']]

+0

你有什麼試過?你顯示的xpath有什麼功能? – CodeCaster

回答

2

您可以通過使用以下代碼獲取該標記,無論在哪個位置或節點單詞「post」或「shared」來,它都會得到該節點。

IEnumerable<HtmlAgilityPack.HtmlNode> nodes = doc.DocumentNode.SelectNodes("//td/a[@href]") 
               .Where(x => x.InnerText.Contains("post") || x.InnerText.Contains("shared")); 

它是測試代碼,它與給定的html一起工作。

+0

必須對實際的HTML進行一些更改,但這使我走上了正確的道路 – Eminem

0

您可以選擇完全在一個XPath:

//td[contains(a,'shared') and contains(a,'post')] 

將選擇所有td元素與a孩子包含"shared"a孩子包含"post"。請注意,目標字符串可能會出現在相同或不同的a元素中。