c# - 使用 HtmlAgilityPack 选择内部文本

标签 c# html html-agility-pack

我正在尝试使用 HtmlAgilityPack 提取一些内部文本。这是感兴趣的 HTML:

<select name="Archives" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;Archives\&#39;,\&#39;\&#39;)&#39;, 0)" id="Archives" style="width:200px;">
    <option selected="selected" value="Dashboard_Jul-2012">Dashboard_Jul-2012</option>
    <option value="Dashboard_Jun-2012">Dashboard_Jun-2012</option>
</select>

我正在使用:

string output = htmlwriter.InnerWriter.ToString()
var doc = new HtmlDocument();
doc.LoadHtml(output);
string inner = doc.DocumentNode.SelectSingleNode("//option[@selected='selected']").InnerText;

但我得到的只是空字符串。

如有任何建议,我们将不胜感激。

问候。

最佳答案

HTMLAgilityPack 默认情况下将选项标签留空(您可以在 HtmlAgilityPack -- Does <form> close itself for some reason? 查看作者的原因)。要修复它,请在选择节点之前添加此行:

HtmlNode.ElementsFlags.Remove("option");

关于c# - 使用 HtmlAgilityPack 选择内部文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059399/

相关文章:

c# - 如何在 ToString() 中显示 1 而不是 01;

javascript - jQuery ajaxForm 完整版有时有效,有时它只触发 native JavaScript 函数然后停止

html - 如何创建一个 flex 的对话泡泡?

css - 放大后全宽切断

c# - 从 Html Img 标签中检索 Url

c# - 通用应用程序 (C#) 中未列出的 HTML Agility Pack SelectSingleNode 方法

c# - 有选择地使用默认的 JSON 转换器

c# - 罗斯林 C# : How to get all fields and properties (and their belonging class) accessed by a method

C#配置管理器。连接字符串

c# - HtmlAgility 检查是否存在具有特定名称的子类