我試圖使用HtmlAgilityPack提取一些內部文本。這是感興趣的HTML:
<select name="Archives" onchange="javascript:setTimeout('__doPostBack(\'Archives\',\'\')', 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中看到作者的原因- <form>是否因某種原因關閉了自己? )。要修復它,請在選擇節點之前添加此行:
HtmlNode.ElementsFlags.Remove("option");