C#htmlagilitypack XPath幫助

c# html-agility-pack xpath

我有這個xpath表達式不起作用

"//div[child[0]::h4[text()[contains(.,'Dir')]]]/a"

要解析這個html:

<div class="txt"> 
      <h4 class="c1"> 
        Dir
      </h4> 
    <a  href="/name/myname/">Bob</a>
</div> 

我試圖進入鏈接節點(a)。文檔中還有其他html標籤具有相同的div / h4層次結構​​,唯一的區別是h4標籤的innertext。那麼我該如何檢查div類(1)是否有一個內部文本為“dir”的子h4節點AND(2)得到第一個鏈接節點(a)。不要認為鏈接是h4的下一個兄弟。

一般承認的答案

你不能只使用這個xpath嗎?

"//div[h4[contains(text(),'Dir')]]/a"

child[0]不是有效軸AFAIK,因此失敗。

如果沒有更完整的HTML示例,我不知道這是否能滿足您的條件。但這肯定適用於這一個。

如果div可能有多個h4元素,你只想檢查第一個:

"//div[h4[1][contains(text(),'Dir')]]/a"

熱門答案

如何檢查div類(1)是否具有內部文本“dir”的子h4節點AND(2)獲取第一個鏈接節點(a)

使用:

"//div[@class='txt' and h4[contains(.,'Dir')]]/a[1]"


許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因