使用HTMLAgilityPack進行XHTML解析

c# html-agility-pack

我在使用HTMLAgilityPack找到的元素中有一個以下元素的列表。

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>

我需要做的是解析標籤中的所有文本,而不是那裡的所有mumbo jumbo。我已經嘗試了(貌似!)一切,但總是看起來像這樣:

部落
調平/日報和活動指南($ 50.00)

有時喜歡:

部落
代練
/日報和活動指南($ 50.00)

還有其他一些變化。我甚至打算將字符串中的每個字符打印成一個字節,我沒有找到任何換行符或提要,只有我期望的,正常的字母和空格。這是html的完整源代碼,可直接從頁面複製。

<option value="13"><span style="color: #0000ff;">Alliance</span> Leveling Guide ($30.00)</option>


<option value="12"><span style="color: #cc0000;">Horde</span> Leveling Guide ($30.00)</option>

<option value="46"><span style="color: #cc0000;">Horde</span> Dailies & Events Guide ($25.00)</option>

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>


<option value="11"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Leveling Guide ($50.00)</option>

<option value="97"><span style="color: #0000ff;">Alliance</span> Achievements & Professions Guide ($20.00)</option>

<option value="98"><span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($20.00)</option>


<option value="99"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($30.00)</option>

熱門答案

默認情況下,Html Agility Pack將<OPTION>標記視為“空”,這意味著它不需要關閉</OPTION> ,這就是為什麼在這種情況下,抓住XPATH並不容易。您可以使用HtmlNode.ElementFlags集合更改此設置。

這是一個應該做你想做的代碼:

HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Remove("option");
doc.LoadHtml(yourHtml);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//option"))
{
    Console.WriteLine(node.InnerText);
}


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