HtmlAgilityPack,使用XPath包含方法和謂詞

contains html-agility-pack xpath

HtmlAgilityPack,使用XPath包含方法

我正在使用HtmlAgilityPack,我需要知道一個類屬性是否包含一個特定的單詞,現在我有這個頁面:

<div class="yom-mod yom-art-content "><div class="bd">
<p class="first"> ....................
  </p>
</div>
</div>

我這樣做:

<div class="yom-mod yom-art-content "><div class="bd">
<p class="first"> ....................
  </p>
</div>
</div>

但它太具體了,我需要的是這樣的:

<div class="yom-mod yom-art-content "><div class="bd">
<p class="first"> ....................
  </p>
</div>
</div>

但它不起作用,請幫助我..

一般承認的答案

也許問題只是你缺少contains()函數的右括號:

//div[contains(@class, 'yom-art-content']//p
                                        v
//div[contains(@class, 'yom-art-content')]//p


List<string> paragraphs = 
        doc2.DocumentNode.SelectNodes("//div[contains(@class, 'yom-art-content')]//p")
            .Select(paragraphNode => paragraphNode.InnerHtml).ToList();

作為一般性建議,當您說出“它不起作用”之類的內容時,請解釋您的意思。我懷疑您收到的錯誤消息可能有助於追踪問題?


熱門答案

而不是使用HAP,請查看提供jQuery樣式選擇器的CsQuery

它看起來特別適合你想要做的事情。

CsQuery是.NET 4的jQuery端口。它實現了所有CSS2和CSS3選擇器,jQuery的所有DOM操作方法,以及一些實用方法。大多數jQuery測試套件(截至1.6.2)已移植到C#。




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