【问题标题】:XHTML Parsing with HTMLAgilityPack使用 HTMLAgilityPack 进行 XHTML 解析
【发布时间】:2011-01-21 04:48:39
【问题描述】:

我在使用 HTMLAgilityPack 找到的元素中包含以下元素的列表。

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

我需要做的是从标签中解析出所有的文本,而不是其中的所有笨拙的东西。我已经尝试了(看似!)一切,但它总是看起来像这样:

部落
升级/每日任务和活动指南 ($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-nodes 的 InnerText 属性吗?

标签: c# html-agility-pack


【解决方案1】:

默认情况下,&lt;OPTION&gt; 标签被 Html Agility Pack 视为“空”,这意味着它不需要关闭 &lt;/OPTION&gt;,这就是为什么在这种情况下,使用 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);
}

【讨论】:

  • 这就是我获取元素的方式,它可以很好地获取元素,就像我通过 Id 而不是 XPATH 一样。我遇到的问题是 InnerText 属性本身,以及格式是如何出来的。 HtmlNode option = doc.GetElementbyId("pur_li");
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
相关资源
最近更新 更多